C++解析JSON字符串
2017-02-10 17:29
267 查看
JSON是JavaScript Object Notation的简称,一种轻量级的数据交换格式;是Web交互中最流行的数据交换格式之一。
下面是最典型的JSON数据格式的例子:
{"Key1":[{"cccc":"5687"},"123456",{"tttt":[{"aaaaa":"8888888"}]}],"Key2":"234"}
看着例子来说理论,这就容易得多。花括号里面是键值对,方括号里面数组.花括号里面的键是一个字符串(用双引号包起来),值可以是字符串(用双引号包起来),也可以是一个数组(用方括号包起来),也可以是字典,Bool或数字,键值对之间用英文的逗号隔开;方括号里面是数组,数组的内容可以是一个字符串(用双引号包起来),也可以是一堆花括号包起来的键值对,也可以是字典,Bool或数字,数组的元素之间用英文的逗号隔开.这样两者之间可以相互嵌套.
现在如果我们要取123456这个值,那么应该先Key1取得123456所在的这个数组,然后再取第二个元素;请看下面这段JS代码:
<html>
<head>
<body>
<script type="text/javascript">
var obj={"Key1":[{"cccc":"5687"},"123456",{"tttt":[{"aaaaa":"8888888"}]}],"Key2":"234"};
alert(obj.Key1[1]);
alert(obj.Key1[0].cccc);
alert(obj.Key1[2].tttt[0].aaaaa);
alert(obj.Key2);
</script>
</body>
</html>
这样弹出来的消息框分别是123456,5687,8888888,234
那么用C++怎么解析JSON字符串变成C++的数据结构呢?请看下面的效果:
源码下载地址:
C++解析JSON字符串
下面是最典型的JSON数据格式的例子:
{"Key1":[{"cccc":"5687"},"123456",{"tttt":[{"aaaaa":"8888888"}]}],"Key2":"234"}
看着例子来说理论,这就容易得多。花括号里面是键值对,方括号里面数组.花括号里面的键是一个字符串(用双引号包起来),值可以是字符串(用双引号包起来),也可以是一个数组(用方括号包起来),也可以是字典,Bool或数字,键值对之间用英文的逗号隔开;方括号里面是数组,数组的内容可以是一个字符串(用双引号包起来),也可以是一堆花括号包起来的键值对,也可以是字典,Bool或数字,数组的元素之间用英文的逗号隔开.这样两者之间可以相互嵌套.
现在如果我们要取123456这个值,那么应该先Key1取得123456所在的这个数组,然后再取第二个元素;请看下面这段JS代码:
<html>
<head>
<body>
<script type="text/javascript">
var obj={"Key1":[{"cccc":"5687"},"123456",{"tttt":[{"aaaaa":"8888888"}]}],"Key2":"234"};
alert(obj.Key1[1]);
alert(obj.Key1[0].cccc);
alert(obj.Key1[2].tttt[0].aaaaa);
alert(obj.Key2);
</script>
</body>
</html>
这样弹出来的消息框分别是123456,5687,8888888,234
那么用C++怎么解析JSON字符串变成C++的数据结构呢?请看下面的效果:
源码下载地址:
C++解析JSON字符串
相关文章推荐
- 详细解析C++编写的ATM自动取款机模拟程序
- Effective STL 条款6 : 当心C++另人迷惑的解析
- C++内存对象解析
- SIP协议解析与实现(c和c++使用osip) 2
- C++中类的静态数据成员函数解析
- 实例解析C++/CLI程序进程之间的通讯
- [转载]解析C++汇编代码-局部变量空间分配及程序栈操作
- 实例解析C++/CLI的“克隆”
- SIP协议解析与实现(c和c++使用osip) 1
- Effective STL 条款6 : 当心C++另人迷惑的解析
- [C++]Google Code Jam中国竞赛原题解析[一]
- 解析C++汇编代码-局部变量空间分配及程序栈操作
- 一个C++的 XML 解析程序
- 详细解析C++编写的ATM自动取款机模拟程序
- 关于c++名字解析规则的一次小研究,
- 用Visual C++.NET实现XML解析
- GoF 23种设模式解析附C++实现源码(k_eckel转自微软高校博客K_eckel's mindview)
- 实例解析C++/CLI之开卷有益
- 实例解析C++/CLI之代理与事件
- 实例解析C++/CLI程序进程之间的通讯