轻量级交互数据json格式初探

什么是 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)

原文发表时间:2016-06-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏about云

日志分析实战之清洗日志小实例5:实现获取不能访问url

问题导读 1.在url中,如何过滤不需要的内容? 2.如何获取404记录并且获取字段? 3.获取不能访问url列表的思路是什么? about云日志分析实...

3285
来自专栏阮一峰的网络日志

asm.js 和 Emscripten 入门教程

Web 技术突飞猛进,但是有一个领域一直无法突破 ---- 游戏。 游戏的性能要求非常高,一些大型游戏连 PC 跑起来都很吃力,更不要提在浏览器的沙盒模型里跑了...

3055
来自专栏程序员的知识天地

Python新手快速入门教程-基础语法

交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。

801
来自专栏生信宝典

Bash概论 - Linux系列教程补充篇

本篇是我最开始学习Linux命令时看的一篇帖子,最早见于ChinaUnix (这次查找其出处时发现2002年就有这篇)。学习过程中,遇到问题就查一下。这次看到,...

1957
来自专栏加米谷大数据

Python 3.7.0 正式版新特性解析

美国时间6月27日晚8点,Python 3.7.0 经过多轮测试,终于发布了正式版,增强了多处特性功能,同时 3.6 也更新到 3.6.6 稳定版本。

1511
来自专栏李航的专栏

Shell 主要逻辑源码级分析:SHELL 运行流程 (1)

分享一下在学校的时候分析shell源码的一些收获,帮助大家了解shell的一个工作流程,从软件设计的角度,看看shell这样一个历史悠久的软件的一些设计优点和缺...

2.1K0
来自专栏用户2442861的专栏

shell脚本方便操作记录(持续添加)

http://blog.csdn.net/richerg85/article/details/44001501

2011
来自专栏owent

我们的Lua类绑定机制

最近一个人搞后台,框架底层+逻辑功能茫茫多,扛得比较辛苦,一直没抽出空来写点东西。

2631
来自专栏枕边书

搭建自己的PHP框架心得(二)

续言 对于本次更新,我想说: 本框架由本人挑时间完善,而我还不是PHP大神级的人物,所以框架漏洞难免,求大神们指出。 本框架的知识点应用都会写在博客里,大家有什...

2398
来自专栏PHP实战技术

Mysql字段类型设计相关问题!

Mysql是以文件存储在我们的系统的硬盘上面,那么

2436

扫码关注云+社区

领取腾讯云代金券