什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 * JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 JSON 语法是 JavaScript 语法的子集。
为什么要用json 在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式。掌握 Ajax 的这一期讨论另一种有用的数据格式 JavaScript Object Notation(JSON),以及如何使用它更轻松地在应用程序中移动数据和对象。 简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪(稍后会看到几个示例),但是 JavaScript 很容易解释它,而且 JSON 可以表示比名称/值对更复杂的结构。
特点 类似 XML JSON 是纯文本 JSON 具有“自我描述性”(人类可读) JSON 具有层级结构(值中存在值) JSON 可通过 JavaScript 进行解析 JSON 数据可使用 AJAX 进行传输
相比 XML 的不同之处 没有结束标签 更短 读写的速度更快 能够使用内建的 JavaScript eval_r() 方法进行解析 使用数组 不使用保留字
使用 JSON 读取 JSON 字符串 用 eval_r() 处理 JSON 字符串
json c++ api 很不错的博客,全了。 http://hi.baidu.com/jiangyangw3r/blog/item/bfedc1ce59b23e0c92457e14.html
c++打json包的一个例子 #include class JsonGuard { public: JsonGuard(json_object *obj) : m_obj(obj){} ~JsonGuard(){ json_object_put(m_obj); } private: json_object *m_obj; }; void testjson() { cout << "test json begin!" << endl; json_object *obj = json_object_new_object(); JsonGuard jsonGuard(obj); // 打一个学生的json格式的信息 int id = 1; json_object_object_add(obj, "id", json_object_new_int(id)); string name("huangfengxiao"); json_object_object_add(obj, "name", json_object_new_string(name.c_str())); json_object *subobj = json_object_new_object();//subobj string mathadd("A-404"); json_object_object_add(subobj, "math", json_object_new_string(mathadd.c_str())); string chineseadd("A-404"); json_object_object_add(subobj, "chineseadd", json_object_new_string(chineseadd.c_str())); json_object_object_add(obj, "subjectaddr", subobj); const char *jsData = json_object_to_json_string(obj); cout<<jsData<<endl; cout << "test json end!" << endl; }
本文分享自微信公众号 - Golang语言社区(Golangweb)
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2016-06-22
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句