1. json是什麼?
官方描述:
以上從json的概念,用途,支援平台三個方面解釋了json是什麼的問題。現在說下我個人的理解。
2. json物件是什麼? json資料是什麼? json資料字串是什麼?
3. cjson基本函式的使用。json資料格式檢查工具:
//以下列json資料的合成和分解為例。
}#include
#include "cjson.h"
int main()
;printf_s("---->---->---->---->json資料合成---->---->---->---->\n");
//新增鍵值對函式cjson_additemtoarray()引數1是目的物件,引數2是鍵名,引數3是鍵值。
//建立json物件,分配記憶體塊儲存json資料。
cjson* root = cjson_createobject();
//新增鍵值對到json物件,鍵值是字串。
cjson_addstringtoobject(root, "name", "李四");
//新增鍵值對到json物件,鍵值是數字。
cjson_addnumbertoobject(root, "age", 25);
//新增鍵值對到json物件,鍵值是數字。
cjson_addnumbertoobject(root, "height", 173.56);
//新增鍵值對到json物件,鍵值是陣列。
cjson *course = cjson_createarray();
//新增成員到陣列,因為引數2是cjon*型別,所以需要cjson_createstring建立。
cjson_additemtoarray(course, cjson_createstring("chinese"));
cjson_additemtoarray(course, cjson_createstring("english"));
cjson_additemtoarray(course, cjson_createstring("math"));
cjson_additemtoarray(course, cjson_createstring("physics"));
//新增陣列course到root物件。
cjson_additemtoobject(root, "course", course);
cjson* scores = cjson_createobject();
cjson_additemtoobject(scores, "chinese", cjson_createnumber(89));
cjson_additemtoobject(scores, "english", cjson_createnumber(130));
cjson_additemtoobject(scores, "math", cjson_createnumber(100));
cjson_additemtoobject(scores, "physics", cjson_createnumber(90));
//新增scores到root物件。
cjson_additemtoobject(root, "scores", scores);
//json資料組織完成,非格式化列印出來進行測試, 會申請額外記憶體。
const char *cjson_unformat_str = cjson_printunformatted(root);
//格式化列印出來進行測試,會申請額外記憶體。
const char* cjson_format_str = cjson_print(root);
//cjson_printbuffered(root, 1024, 1);
//銷毀json物件,釋放json資料占用的記憶體塊。
cjson_delete(root);
root = null;
//cjson_printunformatted cjson_print 會申請記憶體,所以使用完後要釋放。
printf_s("----> cjson_unformat_str: %s\n\n", cjson_unformat_str);
printf_s("----> cjson_format_str: %s\n", cjson_format_str);
//保留乙份副本。
strcpy(json_str, cjson_unformat_str);
free(cjson_unformat_str);
cjson_unformat_str = null;
free(cjson_format_str);
cjson_format_str = null;
printf_s("---->---->---->---->json資料分解---->---->---->---->\n");
//解析json字串為json物件。
root = cjson_parse(json_str);
if (null == root)
//獲取name鍵值的cjson物件。
cjson* name = cjson_getobjectitem(root, "name");
cjson* age = cjson_getobjectitem(root, "age");
cjson* height = cjson_getobjectitem(root, "height");
printf("----> name: %s\n", name->valuestring);
printf("----> age: %d\n", age->valueint);
printf("----> height: %lf\n", height->valuedouble);
//獲取course鍵值的cjson物件。
course = cjson_getobjectitem(root, "course");
//獲取陣列大小
int array_size = cjson_getarraysize(course);
//迴圈獲取陣列元素的cjson物件
cjson* item = null;
for (int i = 0; i < array_size; i++)
//獲取scores鍵值的cjson物件。
scores = cjson_getobjectitem(root, "scores");
cjson* chinese = cjson_getobjectitem(scores, "chinese");
cjson* english = cjson_getobjectitem(scores, "english");
cjson* math = cjson_getobjectitem(scores, "math");
cjson* physics = cjson_getobjectitem(scores, "physics");
printf_s("----> chinese: %d\n", chinese->valueint);
printf_s("----> english: %d\n", english->valueint);
printf_s("----> math: %d\n", math->valueint);
printf_s("----> physics: %d\n", physics->valueint);
cjson_delete(root);
root = null;
while (1);}
springmvc支援json和jsonp型別資料
在使用springmvc開發rest介面的時候很方便,可以直接使用 responsebody註解,直接加在springmvc的控制器類的方法上,springmvc會直接為我們將返回的物件序列化成為json型別的資料,但是有時候有的介面呼叫方需要我們直接返回jsonp型別的資料,這時候可能就會需要我們...
JSON 和 JSON 的方法
json資料格式 只支援高版本瀏覽器,低版本使用json2.js json是什麼 json是一種長的物件的字串,它是一種 資料格式 一般由後端給的 比如 1,2,3,4 xml 也是資料格式長的像下面 柔絲json.parse json 把json格式轉成物件 注意 json格式必須為標準的json...
一 Json物件 Json陣列和Json字串
所謂字串 單引號或者雙引號引起來,是乙個string型別的字串 如下 var person json字串 最顯著的特徵 物件的值可以用 物件.屬性 進行訪問,如下 var person json物件 可以理解為是乙個json物件而 就表示包含兩個物件的json陣列 var str var strto...