分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
JSON数据构造及解析详解
1、JSON格式数据长啥样?
2、JSON简介
JSON(Javascript Object Notation) 是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成。
1)可读性:Json和XML相比可谓不相上下,一边是简单的语法,一边是规范的标签形式,很难分出胜负。
2)可扩展性:XML天生有很好的可扩展性,Json也有。
3)编码难度:XML有丰富的编码工具,Json也有提供,但是XML要输入很多结构字符。
4)解码难度:凡是可扩展的数据结构,解析起来都很困难。
5)数据量: Json具有轻小的特点,降低了数据传输量。
3、JSON适用场景
JSON始于JS,本身就是一种轻量级数据交互类型http://json.org/,所以JSON自然适用于进行数据交互的场景。典型的是Ajax中实现异步加载,因为前段页面已经加载,剩下需要的是真实的数据。
同样的,为了支持跨平台、数据安全等的web service也是一种数据传输,自然也可以使用。
同样的,为了支持跨平台、数据安全等的web service也是一种数据传输,自然也可以使用。
4、常用开源的CPPJson注意事项?
1)下载地址:https://github.com/open-source-parsers/jsoncpp
2) 编译对应下载路径的jsoncpp-src-0.5.0\makefiles\vs71中的工程jsoncpp.sln,在jsoncpp-src-0.5.0\build\vs71\debug路径三个文件下生成对应的jsontest.exe、json_vc71_libmtd.lib、test_lib_json.exe文件。
3) json_vc71_libmtd.lib即为我们第三方的库,可供开发使用。
注意:编译的时候需要修改以下两个地方:
(1)lib_json工程属性-->配置属性-->C/C++-->代码生成 运行库改为“多线程调试DLL(/MDd)";
(2)lib_json工程属性-->配置属性-->库管理器-->常规 忽略特定库中改为“msvcprtd.lib;%(IgnoreSpecificDefaultLibraries)”。
以避免编译错误。
4)自己开发时候,只需要包含:include\json下的头文件,和3)生成的json_vc71_libmtd.lib库即可。
5、构造Json格式数据
//1. json格式化数据,输出到控制台和文件void JsonInsert(){ //根节点 Json::Value root; Json::FastWriter fastWriter; //可以把Json::Value对象写入到字符串流或者文件中。 Json::StyledWriter styleWriter; //根节点属性 root["uploadid"] = Json::Value("UP0000011"); root["code"] = Json::Value(58); root["msg"] = Json::Value("This is test msg!"); Json::Value files; files[