在C++Builder中使用JSONCPP需要注意的问题 1、使用STL的MAP而不是内建的MAP这个问题实际上和编译器无关。内建的MAP不是很稳定,当解析数据大于600K左右时,会崩溃。虽然一般来说JSON的数据大不到哪里去,但不代表数据量小时稳定性就不没有问题,只可能是发生的概率小一些。所以还是使用内建的MAP好一些,测试几兆的数据都没有问题。使用STL MAP的方法是编译时不要定义JSON_VALUE_USE_INTERNAL_MAP变量。2、要在2007中编译通过,需要修改一点代码。之所以会有第一个问题,就是因为直接编译时通不过,又不知道原因在哪里,所以尝试了使用内建的MAP才得以通过。但因为存在问题一,所以只好又回头来解决这个问题了。需要修改的地方:value.h文件中,大概873行的地方:把原来的#ifndef JSON_VALUE_USE_INTERNAL_MAP   explicit ValueIteratorBase( const Value::ObjectValues::iterator &current );修改为:#ifndef JSON_VALUE_USE_INTERNAL_MAP   explicit ValueIteratorBase( const std::map<Value::CZString, Value>::iterator &current ); 如果不换成这种笨一点的办法,而是直接象原来那样使用typename,编译器总会报:“[BCC32 Error] map(30): E2089 Identifier ‘_Mfl’ cannot have a type qualifier”错误。当然不是STL map的错。使用排除法找到这个问题,使用死马当做活马医的办法找到解决方案:)颇费一番周折。 另外,JSONCPP开源工程有一段时间没有更新了,不知还会不会长久的维护完善下去。但鉴于JSON.org上推荐的另两个C++实现方案都依赖boost库,只好先暂时用这个实现。实际上JSONCPP的实现还是蛮不错的,数据的解析、生成都是挺方便的。从一些未完成的接口上看(比如PATH相关的),作者也有一些好的想法,只是未来得及实现。 JSONCPP的网站:

最新文章

  1. gradle环境配置、
  2. winfrom自定义控件
  3. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
  4. 【AngularJS】—— 1 初识AngularJs
  5. 转自虫师:性能测试的 Check List
  6. eclipse中对项目进行分类管理
  7. Spring学习8-SSH+Log4j黄金整合
  8. CentOS 7.2 安装教程
  9. CPU 时间片 分时 轮转调度
  10. 常用Shell的路径
  11. 监视系统3389的VBS脚本
  12. HDU 1568 Fibonacci
  13. HDU 2825 AC自动机+DP
  14. java基础(十七)----- 浅谈Java中的深拷贝和浅拷贝 —— 面试必问
  15. java中之内存溢出说明
  16. IPv6学习笔记
  17. Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:co
  18. [转]基于boot2docker部署Docker环境
  19. (2)Microsoft office Word 2013版本操作入门_快速选中
  20. opencv-resize()放缩函数简介

热门文章

  1. React Native - 1 Windows下的环境配置(Windows+Android)
  2. mysql 文本搜索
  3. DP重开
  4. hdu2825(AC 自动机)
  5. Floyd【p1841】[JSOI2007]重要的城市
  6. 【动态规划】bzoj1638 [Usaco2007 Mar]Cow Traffic 奶牛交通
  7. python3 开发面试题(去重保持原来的顺序)6.2
  8. Spring整合jdbc-jdbc模板api详解
  9. NDK之打印调试信息Log
  10. VS2017序列号|Visual Studio 2017 激活码 序列号