json库范例3

来源:互联网 发布:quickfix python 编辑:程序博客网 时间:2024/06/10 22:06

/*
{"glossary":{"tit":"exampleglossary","GlossDiv":{"TYitle":"S","GlossList":[{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standa
rdGeneralizedMarkupLanguage","Acronym":"SGML","Abbrev":"ISO8879:1986","GlossDef":"Ameta-markuplanguage,usedtocreatemarkuplan
guagessuchasDocBook.","GlossSeeAlso":["GML","XML","markup"]}]}},"shi":"shaojie"}
*/

#include <stdio.h>

#include <string.h>
#include <json/json.h>
#include <json/json_object_private.h>
#define JSON_PATH_FILE "/home/wzb/testls/json/json.txt"

void main()
{


json_object *jsonobj=NULL,*jsondata=NULL,*tmpobj=NULL,*jsonarray=NULL;
char str[1024]={0}; 
int len=0,i; 

jsonobj= json_object_from_file(JSON_PATH_FILE);/*从文件中获取一个json 对象*/

json_object_object_foreach(jsonobj,key,val)
{
if(strcmp(key,"glossary")==0)
{
printf("glossary=%s\n",json_object_get_string(val));
#if 1
jsondata=json_object_new_object();
jsondata=json_object_get(val);

if(is_error(jsondata))
{
json_object_put(jsondata);
return;
}
printf("jsondata=%s\n",json_object_get_string(jsondata));
json_object_object_foreach(jsondata,key,val)
{
if(strcmp(key,"GlossDiv")==0)
{
printf("GlossDiv=%s\n",json_object_get_string(val));
tmpobj=val;
json_object_object_foreach(tmpobj,key,val)
{
if(strcmp(key,"TYitle")==0)
{
     printf("TYitle=%s\n",json_object_get_string(val));
}
if(strcmp(key,"GlossList")==0)
{
      printf("GlossList=%s\n",json_object_get_string(val));
   jsonarray=json_object_new_array();
     jsonarray=val;
    len=json_object_array_length(jsonarray);
    for(i=0;i<len;i++)
{
  tmpobj= json_object_array_get_idx(jsonarray,i);
    json_object_object_foreach(tmpobj,key,val)
  {
if(strcmp(key,"ID")==0)
{
printf("ID=%s\n",json_object_get_string(val));
}
if(strcmp(key,"SortAs")==0)
{
printf("SortAs=%s\n",json_object_get_string(val));
}
if(strcmp(key,"GlossTerm")==0)
{
printf("GlossTerm=%s\n",json_object_get_string(val));
}
if(strcmp(key,"Acronym")==0)
{
printf("Acronym=%s\n",json_object_get_string(val));
}
if(strcmp(key,"Acronym")==0)
{
printf("Acronym=%s\n",json_object_get_string(val));
}
/*
if(strcmp(key,"GlossTerm")==0)
{
printf("GlossTerm=%s\n",json_object_get_string(val));
}*/

if(strcmp(key,"GlossDef")==0)
{
printf("GlossDef=%s\n",json_object_get_string(val));
}
if(strcmp(key,"GlossSeeAlso")==0)
{
printf("GlossSeeAlso=%s\n",json_object_get_string(val));
}

   }
}
}
}
}
if(strcmp(key,"tit")==0)
{
printf("tit=%s\n",json_object_get_string(val));
}

}
json_object_put(jsondata);
#endif

if(strcmp(key,"shi")==0)
{
printf("shi=%s\n",json_object_get_string(val));
}
}
}