365体育在线手机版

Linux C中对json程式数组数据的生成与松析

  在网绕畅通信中,数据日日被做成json程式的到来终止传输。这么我们怎么在linux体系中去做json程式的数据呢?怎么将接纳到的json程式的数据松析出产到来呢?

  1、linux json库的装置

  (1)下载json-c源码包

  (2)松压json-c的源码包

  Tar -xvf json-c-0.10.tar.gz

  (3)配备成X86平台json包

  http://emb.hqyj.com/Column/configure --prefix=/usr

  (4)编译

  Make

  (5)装置

  Sudo make install

  2、json库中日用的函数接口

  ----------------生成json程式的数据日用函数接口-----------------

  (1)创立壹个空的json对象

  Struct json_object *obj=json_object_new_object();

  (2)以key-value的方法添加以json对象的成员

  Value值是int典型:key值是“temp”,value值是20

  json_object_object_add(obj,temp”,json_object_new_int(20));

  Value值是string典型:key值是“name”,value值是”mm”

  json_object_object_add(obj,name”,json_object_new_string(“mm”));

  (3)将json对象情节,转成json程式的字符串

  Unsigned char *json_string=json_object_to_json_string(obj);

  --------------松析json程式的数据日用函数接口------------------

  (1)将json程式的字符串转成json对象

  Struct json_object new_obj=json_tokener_parse(json_string);

  (2)根据指定对象的成员名,获取此雕刻个成员对象的json对象

  Struct json_object *object=json_object_object_get(new_object);

  (3)根据key犯得着到相应的value值

  Value值为int:

  Json_object_get_int(object);

  Value值为string:

  Json_object_get_string(object);

  3、关于比较骈杂的json程式的数据,我们用到下面的函数接口就却以完成json程式数据的创造和析。

  4、假设碰到比较骈杂的json数组程式的数据,我们又该怎么去创造和析呢?

  示例说皓:{

  "jporder":

  [

  { "jdevice": 1, "jppaynum": 1 },

  { "jdevice": 2, "jppaynum": 2 }

  ]

  }

  剖析该数据的结合:

  1、key值为”jporder”,与其对立应的value值是壹个数组[ { "jdevice": 1, "jppaynum": 1 }, { "jdevice": 2, "jppaynum": 2 } ]

  2、数组的每个成员邑是两对json对象

  数结合员1:{ "jdevice": 1, "jppaynum": 1 }

  数结合员2:{ "jdevice": 2, "jppaynum": 2 }

  3、每个json对象邑是由key_value结合

  详细的数据生成和析方法如次:

  数据生成片断:

Copyright © 2014-2016 365体育在线手机版投注 版权所有