精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
在构造json输出时,遇到复杂的关系,这时候遇到了LogicError非法操作。报错的函数是:
JSONCPP_NORETURN void throwLogicError(JSONCPP_STRING const& msg) { throw LogicError(msg); }
//值是数组时处理错误,值内部没有数组时强制使用[0]向数据项添加属性时,导致。 Cabin[0].append(FD_Info);//这时没有[0] if(!Cabin.isNull())//判断空也能通过 routings.append(Cabin);//也加了值到父节点下 //这样数组对应混乱,没有数组项时,向数组项添加对象,导致了逻辑错误。改成如下:问题解决。 if(!Cabin.isNull())//判断空也能通过 Cabin[0].append(FD_Info);//这时没有[0] if(!Cabin.isNull())//判断空也能通过 routings.append(Cabin);//也加了值到父节点下
后来想了想,第一个isNull判断下,就不执行第一个append,所以不出错。正确的逻辑是:属性对象可以是数组,但对象不能是数组和属性混合共用。