您好,登錄后才能下訂單哦!
1json數據格式簡介(JaveScript Object Notation)
隨著JaveScript的流行和互聯網應用,JavaScript里面最強大的
數據類型Object,使用起來及其方便,可以滿足所有的數據存儲.
為了能更好的做數據交換,設計了JSON協議,能夠將JavaScript里面
的Object與Json的轉換,Object對象轉換成Json數據以后,方便
傳輸和存儲,json變為Object方便對象重建.
Object又叫做表 存放的就是 key:value name:小明
key可以是字符串和數據
value可以是數組,字符串,bool,數組多個value,object
JSON是完全獨立于語言的文本格式,易于閱讀與編寫以及解析.
2使用c語言開源庫mjson 解析json
#include "mjson/json.h" /* { //root "k_num" : 123, "k_str" : "hello", "k_logic" : true, "k_null" : null, "k_array" : [1,"hello","2"], "weap_object" : { "default":"putongzidan", } } */ int main(int argc, char*argv[]) { //首先建一個空的Object json_t* root = json_new_object(); //new一個數字 //把這個元素 加到object里 json_t* k_num = json_new_number("123"); json_insert_pair_into_object(root,"k_num",k_num); json_t* uname = json_new_string("hello"); json_insert_pair_into_object(root, "k_str", uname); json_t* logic = json_new_true(); json_insert_pair_into_object(root, "k_logic", logic); json_t* knull = json_new_null(); json_insert_pair_into_object(root, "k_null", knull); //array 數組 json_t *man_array = json_new_array(); json_insert_pair_into_object(root, "k_array", man_array); //給數組插入數組 json_t* tmp1 = json_new_number("1"); json_t* tmp2 = json_new_string("hello"); json_insert_child(man_array, tmp1); json_insert_child(man_array, tmp2); //end //嵌套一個Object json_t* weap_object = json_new_object(); json_insert_pair_into_object(root, "weap_object", weap_object); //嵌套的object 里面在加元素 tmp1 = json_new_string("putongzidan"); json_insert_pair_into_object(weap_object, "default", tmp1); //end //編碼成string text指向這個字符串內存地址 char* text = NULL; json_tree_to_string(root, &text); //釋放 這個root printf("json endcode :\n%s\n",text); //json字符串 變成json對象數 讀json json_free_value(&root); root = NULL; json_parse_document(&root,text);//從json文本來生成json對象數 free(text); //解碼這個字符串 json_t* user_name = json_find_first_label(root,"k_str"); json_t* user = user_name->child;//獲取value printf("name type%d:%s\n", user->type, user->text); //解碼array里的 json_t* user_array = json_find_first_label(root, "k_array"); json_t* arrat1 = user_array->child->child; printf("name type%d:%s\n", arrat1->type, arrat1->text); //獲取數組 下一個next json_t* arrat2 = arrat1->next; printf("name type%d:%s\n", arrat2->type, arrat2->text); //解碼object里的 json_t* user_object = json_find_first_label(root, "weap_object"); json_t* user_object_child = user_object->child->child; arrat2 = user_object_child->child; printf("name type%d:%s\n", arrat2->type, arrat2->text); //還有在釋放一次 因為這個是 生成的對象數 json_free_value(&root); system("pause"); return 0; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。