linux解析json编码,linux json

  linux解析json编码,linux json

  一、Json基础

  JSON(JavaScript对象符号)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。尽管数据是在爪哇岛描述语言的一个子集,但数据是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯100 .数据建构有两种结构:

  1) "名称/值"对的集合(名称/值对得集合).不同的语言中,它被理解为对象(对象),记录(记录),结构(结构),字典(字典),哈希表(哈希表),有键列表(键控列表),或者关联数组(关联数组).

  2)值的有序列表(有序的值列表).在大部分语言中,它被理解为数组(数组).

  例如,现创建一个新的Java脚本语言变量,然后将数据格式的数据字符串直接赋值给它:

  varpeople={

  程序员:[

  { 名字:布雷特,姓氏:麦克劳林,电子邮件: aaaa },

  { 名字:杰森,姓氏:猎人,电子邮件: bbbb },

  { 名字:埃利奥特,姓氏:哈罗德,电子邮件: cccc }

  ],

  作者:[

  { 名字:艾萨克,姓氏:阿西莫夫,体裁:科幻 },

  { 名字: Tad ,姓氏:威廉姆斯,流派:幻想 },

  { 名字:弗兰克,姓氏:佩雷蒂,流派:基督教小说 }

  ],

  音乐家:[

  { 名字:埃里克,姓氏:克拉普顿,乐器:吉他 },

  { 名字:谢尔盖,姓氏:拉赫玛尼诺夫,乐器:钢琴 }

  ]}

  这非常简单;现在人包含前面看到的数据格式的数据。

  二、编译数据库

  jsoncpp是一个c封装的数据包,跨平台支持windows、linux、unix等多系统。在窗子下面使用比较简单,直接往风险投资里面添加项目就可以了linux操作系统.下面编译需要使用到烤饼,烤饼是python工具,需要先安装好python。

  1.下载源码包并解压scons-2.2.0.tar.gz

  scons-2.2.0.tar.gz[root @ localhost NFS]# tarxzf

  [root @ localhostnfs]# CD scons-2。2 .0

  [root@localhostscons-2.2.0]# ls

  CHANGES.txt清单README.txt sconsign.1setup.cfg

  engineos _ spawnv _ fix。差异发布。txt scons-时间。1设置。巴拉圭

  许可证. txt PKG信息scons.1脚本

  2.设置环境变量(为scons-2.2.0的目录)

  [root @ localhost JSON CPP-src-0。5 .0]#导出我的scons=/work/NFS/scons-2。2 .0

  [root @ localhost JSON CPP-src-0。5 .0]# export SCONS _ LIB _ DIR=$ my SCONS/engine

  3.下载源码包并解压jsoncpp-src-0.5.0.tar.gz

  [root @ localhost NFS]# xzfjsoncpp-src-0.5.0.tar.gz

  [root @ localhostnfs]# CD JSON CPP-src-0。5 .0

  [root @ localhostjsoncpp-src-0。5 .0]# ls

  作者doxybuild。pymakefiles scons-工具测试

  开发者工具包括emaker发布。巴拉圭构造版本

  文件许可证README.txt src

  4.编译

  [root @ localhostjsoncpp-src-0。5 .0]# python$my cons/script/scons平台=Linux-gcc

  [root @ localhostjsoncpp-src-0。5 .0]# ls include/JSON/

  自动链接。h特征。hjson。h值。h//头文件

  forwards.hreader.h writer.h

  [root @ localhostjsoncpp-src-0。5 .0]# ls libs/Linux-gcc-4。1 .2/

  libjson _ Linux-gcc-4。1 .2 _ libmt。一个libjson _ Linux-gcc-4。1 .2 _ libmt。所以//库

  三、测试

  1.编写json_test.cpp

  #包括输入输出流

  #包含字符串

  #包含 ./json/json.h

  使用命名空间标准

  int main(void)

  {

  stringstrJson={key1:value1 , array:[{key2:value2 , key3:aa},{key2:value3 , key3:bb},{key2:value4 , key 3 : cc }]} ;

  JSON:reader reader;

  JSON:StyledWriterstyled _ writer;

  JSON:value val;

  如果(!reader.parse(strJson,val))

  return-1;

  stringstr=val[key1].asString();

  cout key 1: str endl;

  JSON:value obj _ array=val[ array ];

  cout styled _ writer。write(obj _ array)endl;

  for(int I=0;I obj _ array。size();我)

  {

  str=obj_array[i][key2].asString();

  cout key 2[ I ]: str endl;

  str=obj_array[i][key3].asString();

  cout key 2[ I ]: str endl;

  }

  返回0;

  }

  2.创建符号链接

  [root @ localhost JSON CPP-src-0。5 .0]# ln-s/work/NFS/JSON CPP-src-0。5 .0/libs/Linux-gcc-4。1 .2/lib JSON _ Linux-gcc-4。1 .2 _ libmt。so/usr/local/lib/lib JSON。因此

  [root @ localhost JSON CPP-src-0。5 .0]#/sbin/LD config//更新库

  3.编译

  [root @ localhost JSON CPP-src-0。5 .0]# g JSON _ test。CPP-LJ son

  4.运行程序

  [root @ localhostjsoncpp-src-0。5 .0]#。/a.out

  关键字1:值一

  [

  {

  关键字2 :值2 ,

  按键3 : aa

  },

  {

  键2 :值3 ,

  按键3 : bb

  },

  {

  关键字2 :值4 ,

  按键3 :抄送

  }

  ]

  key2[0]:值2

  key2[0]:aa

  key2[1]:值3

  按键2[1]:bb

  key2[2]:值四

  密钥2[2]:抄送

linux解析json编码,linux json