锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / nlohmann/json、nlohmann/json要点、nlohmann/json开源社区
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

nlohmann/json、nlohmann/json要点、nlohmann/json开源社区


c++ json方面的开源库锐英源深入研究的有jsoncpp和rapidjson,但是最近新推出的nlohmann/json也很火,有个朋友在Ureal结合开发时,让我指导他用nlohmann/json写出json数组类型处理的代码,我用nlohmann/json结合for auto写出了代码。

在研究过程中,发现nlohmann/json在github上的代码比较难下载,国内gitee上下载很方便,但是gitee上的帮助文档也是英文的,大家有兴趣可以用翻译工具翻译下,帮助文档后面是nlohmann/json的要点,比如json指针和json补丁、json合并补丁、隐式转换、任意类型转换、宏、专业序列化和二进制格式,这些要点掌握了,表明C++水平就真正上去了,当然做应用级开发,可能这些要点也接触不到,这里提这些就是说大家要重视开源库的精髓,不要觉得json常用,开源库就简单,我看了nlohmann/json的代码,有的头文件将近100K,里面代码量还是很复杂的。nlohmann/json的复杂用法,如果不掌握,或者心里不能确定,请联系锐英源,有专业服务。

nlohmann/json的配套文档和示例代码齐全,有文档目录和示例代码目录,我在示例代码里找到了array.cpp,应该是处理数组的示例。

nlohmann/json是新推出的,所以在功能上有新意,新在有点动态语言的结合,比如正面的初始化,

auto j2 = R"(
  {
    "happy": true,
    "pi": 3.141
  }
)"_json;

一些刚毕业的学生估计不好理解,"" _json是操作符重载,这类形式的重载在老代码里比较少见,初学者如果C++没深入学,估计这种形式很难理解,C++面向对象里有操作符重载,是重要的章节,操作符重载的目的是让操作以更自然形式的来表现。上段代码就是自然表现,加了后缀就能转换成json对象,不需要再另起一行调用函数,更方便。

初始化后,使用nlohmann/json也很简单,用好[]取属性,转换结果成string用dump,整体解析和序列化可以用<<和>>操作符,nlohmann/json目标就是让用json更简单。

vs2019下使用nlohmann/json非常方便,在包含目录里加上nlohmann/json的目录,不用把nlohmann/json文件加到项目里,就可以直接编译使用。如果把nlohmann/json的目录直接拷贝到项目目录下,反而不好用,切记。

下面是数组代码示例:

            json coor = jf["geometry"]["coordinates"];
            for(auto& cf :coor)//或for循环
            {
                string sx=cf[0].dump();//X坐标
                string sy=cf[1].dump();//Y坐标
            }

nlohmann/json开源社区
 
  
友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内