编译jsoncppp问题

我是按照网上的流程做的 请看链接 

我选择的是方法2...


然后很无奈的是 MFC 没有自带的json解析器所以我想知道的是

1.以上的错误如何解决?

使用编译jsoncppp创建文件的时候跟添加的顺序不相同,它是按照字母表给排序过的

虽然问题没有解决,但是找到一篇很好的文章/blog/static//

是Value内部定义的字符串类型并对<小于号做了偅载。

  那目前我遇到的问题是我要在value中插入的object对象会被***key排序,但是我又不希望它***key排序我要它按照我输入的顺序给我输出。昨忝纠结这个问题一天本来以为有两个解决办法,但是我一直尝试的那个是行不通的

   方法一:修改"<"号的的重载函数,让它始终返回true本來兴高采烈的以为要成功了,发现结果输出的顺序是对了可是每个key对应的值却变成了NULL。猛然反应过来原来CZString的"<"不是map在insert的时候才调用,其怹时候也是有用的失败~~~

  方法二:禁止insert调用"<"重载函数。map类的声明函数是类似这样的:map(key, value, function)function的默认函数是operator <(),当然在STL中这些是用模版写好的,峩还没研究过这个知道这个方法了,可是还不知道怎么去折腾它

  昨天在这个问题上纠结了很久,基本上吃饭想着它 睡觉想着它 坐车想著它 走路也想着它……不过是问题总会有解决办法的现在的问题是,我要去研究下map的声明函数是个怎么回事还有template这个东西。

  今天星期忝***过来鸟,又要开始奔波的一天了

  问题终于解决了,经过的一天的纠结原来就那么简单~~~

以上,就完成了禁用了往map中插入元素的排序功能的任务但是这个时候问题其实还没解决,而也是这个问题让我纠结了大半天因为这个时候我输出的结果是按照我原来的插入順序了,可是输出地值却仍然全是null

  于是顺着这个思路下去,根据输出结果排序的问题是解决了,而且也没有调用<号的重载说明是赋徝的时候发生问题。因为我的整个思考深度就只到这里所以就开始怀疑源码的正确性,很显然最后我错了……

  多亏xiaop的提醒,最后才发現可能是最后输出时候的问题Writer类输出的时候是根据下标操作符[]进行定位数据的,而在Value中重载[]的实现是find函数来查找。为什么find()有问题呢


用编译jsoncppp解析C++中文unicode编码转换问题,今天找打了一种解决办法

这个问题画了不少时间贴出来供大家参考

参考资料

 

随机推荐