JSON

C语言 JSON 解析库

字号+ 作者:H5之家 来源:H5之家 2015-10-05 11:06 我要评论( )

MJSON 是使用 ISO C 标准库开发的 json 解析库。nbsp;下载地址:http://www.linuxpig.com/softwares/mjson/mjson-0.9.tar.bz2nbsp;安装:解压出来,然后直接包含

MJSON 是使用 ISO C 标准库开发的 json 解析库。

 

下载地址:

 

安装:
解压出来,然后直接包含 json.h 就可以了。

下面是几个官方给出的几个例子,由于直接拷贝过来编译没通过,做了一些修改,详见注释部分。

【mjson例一】

#include <stdio.h> #include <stdlib.h> #include <locale.h> #include "json.h" int main (void) { char *text; json_t *root, *entry, *label, *value; setlocale (LC_ALL, "");//设为系统默认地域信息 // creates the root node root = json_new_object(); // create an entry node entry = json_new_object(); // 第一部分,打印结果: // {"entry":{"name":"Andew","phone":"555 123 456"}} // insert the first label-value pair label = json_new_string("name"); value = json_new_string("Andew"); json_insert_child(label, value); json_insert_child(entry, label); // insert the second label-value pair label = json_new_string("phone"); value = json_new_string("555 123 456"); json_insert_child(label, value); json_insert_child(entry, label); // inserts that object as a value in a label-value pair label = json_new_string("entry"); json_insert_child(label, entry); // inserts that label-value pair into the root object json_insert_child(root, label); // print the result json_tree_to_string(root, &text); printf("%s\n",text); // clean up free(text); json_free_value(&root); //打印第二部分,数组示例, //结果: // ["test1","test2",109] root = json_new_array(); label = json_new_string("test1"); json_insert_child(root,label); value = json_new_string("test2"); json_insert_child(root,value); value = json_new_number("109"); json_insert_child(root,value); json_tree_to_string(root,&text); printf("%s\n",text); // clean up free(text); json_free_value(&root); return EXIT_SUCCESS; }【mjson例二】#include <stdio.h> #include <stdlib.h> #include <locale.h> #include "json.h" json_t *new_entry(char *name, char *phone) { json_t *entry, *label, *value; // create an entry node entry = json_new_object(); // insert the first label-value pair label = json_new_string("name"); value = json_new_string("Andew"); json_insert_child(label, value); json_insert_child(entry, label); // insert the second label-value pair label = json_new_string("phone"); value = json_new_string("555 123 456"); json_insert_child(label, value); json_insert_child(entry, label); // inserts that object as a value in a label-value pair label = json_new_string("entry"); json_insert_child(label, entry); return label; } int main (void) { setlocale (LC_ALL, "");//设置为系统默认的地域信息 json_t *root, *subtree; // creates the root node root = json_new_object(); // creates the desired MJSON document subtree subtree = new_entry("Andrew", "555 123 456"); // inserts the subtree into the root object json_insert_child(root, subtree); // print the result char *text; json_tree_to_string(root, &text); printf("%s\n",text); //官方例子中为printf("%ls\n",text);去掉l才能打印出来。。 // clean up free(text); json_free_value(&root); return EXIT_SUCCESS; } 【输出结果】 {"entry":{"name":"Andew","phone":"555 123 456"}}【mjson例三】#include <stdio.h> #include <stdlib.h> #include <locale.h> #include "json.h" int main (void) { setlocale (LC_ALL, ""); char *document = "{\"entry\":{\"name\":\"Andew\",\"phone\":\"555 123 456\"}}"; json_t *root; printf("Parsing the document…\n"); root = json_parse_document(document); printf("Printing the document tree…\n"); json_tree_to_string(root, &document); wprintf("%ls\n", document); // clean up json_free_value(&root); return EXIT_SUCCESS; }

【参考】


来自:

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评
(