Json   发布时间:2022-04-22  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cJSON源码里的例子大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

这是cJSON源码里的例子,我觉得非常全面就贴出来留作备案.方便查找.


#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
//#include "cJSON.c" 也可以包含C文件,就不使用库了.

/* Parse text to JSON,then render BACk to text,and print! */
void doit(char *text)
{
char *out;cJSON *json;

json=cJSON_Parse(text);
if (!json) {printf("Error before: [%s]\n",cJSON_GetErrorPtr());}
else
{
out=cJSON_Print(json);
cJSON_delete(json);
printf("%s\n",out);
free(out);
}
}

/* Read a file,parse,render BACk,etc. */
void dofile(char *fileName)
{
FILE *f=fopen(filename,"rb");
fseek(f,SEEK_END);
long len=ftell(f);
fseek(f,SEEK_SET);
char *data=(char*)malloc(len+1);
fread(data,1,len,f);
fclose(f);
doit(data);
free(data);
}


/* U example datatype. */

struct record {const char *precision;double lat,lon;const char *address,*city,*state,*zip,*country; }; /* Create a bunch of objects as demonstration. */ void create_objects() { cJSON *root,*fmt,*img,*thm,*fld;char *out;int i; /* declare a few. */ /* Here we construct some JSON standards,from the JSON site. */ /* Our "Video" datatype: */ root=cJSON_CreateObject(); cJSON_AddItemToObject(root,"name",cJSON_CreateString("Jack (\"Bee\") Nimble")); cJSON_AddItemToObject(root,"format",fmt=cJSON_CreateObject()); cJSON_AddStringToObject(fmt,"type","rect"); cJSON_AddnumberToObject(fmt,"width",1920); cJSON_AddnumberToObject(fmt,"height",1080); cJSON_AddfalseToObject (fmt,"interlace"); cJSON_AddnumberToObject(fmt,"frame rate",24); out=cJSON_Print(root); cJSON_delete(root); printf("%s\n",out); free(out); /* Print to text,delete the cJSON,print it,release the String. */ /* Our "days of the week" array: */ const char *Strings[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}; root=cJSON_CreateStringArray(Strings,7); out=cJSON_Print(root); cJSON_delete(root); printf("%s\n",out); free(out); /* Our matrix: */ int numbers[3][3]={{0,-1,0},{1,{0,1}}; root=cJSON_CreateArray(); for (i=0;i<3;i++) cJSON_AddItemToArray(root,cJSON_CreateIntArray(numbers[i],3)); /* cJSON_replaceItemInArray(root,cJSON_CreateString("replacement")); */ out=cJSON_Print(root); cJSON_delete(root); printf("%s\n",out); free(out); /* Our "gallery" item: */ int ids[4]={116,943,234,38793}; root=cJSON_CreateObject(); cJSON_AddItemToObject(root,"Image",img=cJSON_CreateObject()); cJSON_AddnumberToObject(img,"Width",800); cJSON_AddnumberToObject(img,"Height",600); cJSON_AddStringToObject(img,"title","View from 15th Floor"); cJSON_AddItemToObject(img,"Thumbnail",thm=cJSON_CreateObject()); cJSON_AddStringToObject(thm,"Url","http:/*www.example.com/image/481989943"); cJSON_AddnumberToObject(thm,125); cJSON_AddStringToObject(thm,"100"); cJSON_AddItemToObject(img,"IDs",cJSON_CreateIntArray(ids,4)); out=cJSON_Print(root); cJSON_delete(root); printf("%s\n",out); free(out); /* Our array of "records": */ struct record fields[2]={ {"zip",37.7668,-1.223959e+2,"","SAN FRANCISCO","CA","94107","US"},{"zip",37.371991,-1.22026e+2,"SUNNYVALE","94085","US"}}; root=cJSON_CreateArray(); for (i=0;i<2;i++) { cJSON_AddItemToArray(root,fld=cJSON_CreateObject()); cJSON_AddStringToObject(fld,"precision",fields[i].precision); cJSON_AddnumberToObject(fld,"Latitude",fields[i].lat); cJSON_AddnumberToObject(fld,"Longitude",fields[i].lon); cJSON_AddStringToObject(fld,"Address",fields[i].address); cJSON_AddStringToObject(fld,"City",fields[i].city); cJSON_AddStringToObject(fld,"State",fields[i].statE); cJSON_AddStringToObject(fld,fields[i].statE); cJSON_AddStringToObject(fld,"Zip",fields[i].zip); cJSON_AddStringToObject(fld,"Country",fields[i].country); } /* cJSON_replaceItemInObject(cJSON_GetArrayItem(root,1),4)); */ out=cJSON_Print(root); cJSON_delete(root); printf("%s\n",out); free(out); } int main (int argc,const char * argv[]) { /* a bunch of json: */ char text1[]="{\n\"name\": \"Jack (\\\"Bee\\\") Nimble\",\n\"format\": {\"type\": \"rect\",\n\"width\": 1920,\n\"height\": 1080,\n\"interlace\": false,\"frame rate\": 24\n}\n}"; char text2[]="[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]"; char text3[]="[\n [0,0],\n [1,\n [0,1]\n ]\n"; char text4[]="{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http:/*www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": \"100\"\n },\n \"IDs\": [116,38793]\n }\n }"; char text5[]="[\n {\n \"precision\": \"zip\",\n \"Latitude\": 37.7668,\n \"Longitude\": -122.3959,\n \"Address\": \"\",\n \"City\": \"SAN FRANCISCO\",\n \"State\": \"CA\",\n \"Zip\": \"94107\",\n \"Country\": \"US\"\n },\n {\n \"precision\": \"zip\",\n \"Latitude\": 37.371991,\n \"Longitude\": -122.026020,\n \"City\": \"SUNNYVALE\",\n \"Zip\": \"94085\",\n \"Country\": \"US\"\n }\n ]"; /* Process each json textblock by parsing,then rebuilding: */ // doit(text1); // doit(text2); // doit(text3); // doit(text4); // doit(text5); /* Parse standard testfiles: */ // dofile("./test1"); /* dofile("../../tests/test2"); */ /* dofile("../../tests/test3"); */ /* dofile("../../tests/test4"); */ /* dofile("../../tests/test5"); */ /* Now some samplecode for building objects concisely: */ // create_objects(); return 0; }

大佬总结

以上是大佬教程为你收集整理的cJSON源码里的例子全部内容,希望文章能够帮你解决cJSON源码里的例子所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。