JSON简介及具体的JSON消息示例

Posted 周氏逻辑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON简介及具体的JSON消息示例相关的知识,希望对你有一定的参考价值。

在互联网软件前端与后台进行消息交互的过程中,需要有一种标准的数据交换格式供前后端采用。在众多的数据交换格式中,JSON(javascript Object Notation,JS 对象标记)是应用得比较广泛的,它采用完全独立于编程语言的文本格式来存储和表示数据。JSON的层次结构简洁、清晰,易于阅读和编写,同时也易于机器解析和生成,这有效地提升了网络传输效率。


本文首先对JSON进行简单的介绍,然后用具体的C代码示范了各类JSON消息的构造方法。


JSON简介

JSON 的语法规则可以用下面的四句话来概括:

第一,对象表示为键值对。

第二,数据由逗号分隔。

第三,花括号保存对象。

第四,方括号保存数组。


具体而言,每条JSON消息都是包裹在大括号之内的,键值对组合中的键名写在前面并用双引号包裹,键和值使用冒号分隔,冒号后面紧接着值,如:”name”: “zhou”;数组是用方括号包裹起来的,如:[“zhou”, “zhang”]。



JSON消息示例

本部分用实际的C代码来示范了各类常用的JSON消息的构造方法。在编写代码之前,要到https://sourceforge.net/projects/cjson/上去下载C语言版的JSON封装API。


在JSON的API中,我们常用到的有如下几个函数:

1)cJSON_CreateObject():创建JSON对象。

2)cJSON_Delete(cJSON *c):删除一个JSON结构。

3)cJSON_AddStringToObject(object,name,s):将一个字符串添加到对象中。

4)cJSON_AddNumberToObject(object,name,n):将一个整数添加到对象中。

5)cJSON_Print(cJSON *item):将JSON消息以文本消息的样式输出。

6)cJSON_AddItemToObject(cJSON *object,const char *string,cJSON *item):将一个数据(通常为对象)添加到一个对象中。

7)cJSON_CreateString(const char *string):生成字符串数据。

8)cJSON_AddItemToArray(cJSON *array, cJSON *item):将一个数据添加到一个数组中。

9)cJSON_CreateArray():创建JSON数组。


本文中要用C代码来生成的JSON消息有如下8种:


1.

{

    name:"zhou",

    age:30

}


2.

{

    personinfo:{

        name:"zhou",

        age:30

    }

}


3.

{

    personinfo1:{

        name:"zhou",

        age:30

    },

personinfo2:{

        name:"zhang",

        age:41

    }

}


4.

{

    id:"123456",

    personinfo:{

        name:"zhou",

        age:30

    }

}


5.

{

    personname:[

        "zhou",

        "zhang"

    ]

}


6.

{

    id:"123456",

    personname:[

        "zhou",

        "zhang"

    ],

    personinfo:{

        phonenumber:"15696192591",

        age:30

    }

}


7.

{

personinfo:{

        personname:[

        "zhou",

        "zhang"

        ],

        age:30

    }

}


8.

{

    personinfo:[

{

        name:"zhou",

        age:30

        },

{

        name:"zhang",

        age:41

        }

    ]

}



具体的程序代码见CSDN博客文章,请点击本文左下方的“阅读原文”。


总结

以上是常见JSON消息的C代码实现方法,大家可以编写测试代码来看最终生成的JSON消息是否是我们描述的那样。我编写了一个完整的测试代码,放到了GitHub上,欢迎下载阅读:https://github.com/zhouzxi/TestJson。(本测试程序是运行在Linux上的,大家可以使用这个命令进行编译:gcc -g -o TestJson TestJson.c cJSON.c -pthread -lc -lm)

以上是关于JSON简介及具体的JSON消息示例的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 JSON 示例

消息序列化工具-protobuf介绍及安装使用技巧

JSON / YAML 文件中的 Thymeleaf 消息/翻译

csharp MessageBody的示例消息检查器。如有问题http://stackoverflow.com/questions/33343908/handle-json-request-data-

RocketMQ 自定义消息与延迟消息

K8S------YAML文件详解及示例