搜索引擎优化seo网站,wordpress设置html,东莞道滘网站建设,微信开放平台 网站开发为什么要用json跟XML相比#xff0c;JSON的优势在于格式简洁短小#xff0c;特别是在处理大量复杂数据的时候#xff0c;这个优势便显得非常突出。从各浏览器的支持来看#xff0c;JSON解决了因不同浏览器对XML DOM解析方式不同而引起的问题。目前#xff0c;JSON已经成为…为什么要用json跟XML相比JSON的优势在于格式简洁短小特别是在处理大量复杂数据的时候这个优势便显得非常突出。从各浏览器的支持来看JSON解决了因不同浏览器对XML DOM解析方式不同而引起的问题。目前JSON已经成为最流行的数据交换格式之一各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》探讨它的设计思想。今天我想总结一下PHP语言对它的支持这是开发互联网应用程序(特别是编写API)必须了解的知识。从5.2版本开始PHP原生提供json_encode()和json_decode()函数前者用于编码后者用于解码。一、json_encode()该函数主要用来将数组和对象转换为json格式。先看一个数组转换的例子$arr array (a1,b2,c3,d4,e5);echo json_encode($arr);结果为{a:1,b:2,c:3,d:4,e:5}再看一个对象转换的例子$obj-body another post;$obj-id 21;$obj-approved true;$obj-favorite_count 1;$obj-status NULL;echo json_encode($obj);结果为{body:another post,id:21,approved:true,favorite_count:1,status:null}由于json只接受utf-8编码的字符所以json_encode()的参数必须是utf-8编码否则会得到空字符或者null。当中文使用GB2312编码或者外文使用ISO-8859-1编码的时候这一点要特别注意。前文出自http://www.ruanyifeng.com/blog/2011/01/json_in_php.html从上面的介绍我们可以知道php对json的支持可以说是做到非常方便了。那c呢先看json的数据结构c中没有对象所以json数据是采用链表存储的C代码 typedefstructcJSON {structcJSON *next,*prev;// 数组 对象数据中用到structcJSON *child;// 数组 和对象中指向子数组对象或值inttype;// 元素的类型如是对象还是数组char*valuestring;// 如果是字符串intvalueint;// 如果是数值doublevaluedouble;// 如果类型是cJSON_Numberchar*string;// The items name string, if this item is the child of, or is in the list of subitems of an object.} cJSON;比如你有一个json数据Javascript代码 {name:Jack (\Bee\) Nimble,format: {type:rect,width: 1920,height: 1080,interlace:false,frame rate: 24}}那么你可以1讲字符串解析成json结构体。C代码 cJSON *root cJSON_Parse(my_json_string);2:获取某个元素C代码 cJSON *format cJSON_GetObjectItem(root,format);intframerate cJSON_GetObjectItem(format,frame rate)-valueint;3:讲json结构体转换成字符串C代码 char*renderedcJSON_Print(root);4删除C代码 cJSON_Delete(root);5构建一个json结构体C代码 cJSON *root,*fmt;rootcJSON_CreateObject();cJSON_AddItemToObject(root, name, cJSON_CreateString(Jack (\Bee\) Nimble));cJSON_AddItemToObject(root, format, fmtcJSON_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);也是一样方便的。其实个人理解的json也是字符串前后台如何传递字符串呢可以通过数据库。也可以通过文件。也可以通过前台直接放入函数入库(不够灵活)。