JSON简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
官网:http://json.org/json-zh.html
JSON数据格式
1: JSON数据格式源自于js(JavaScript Object Notation)。
JSON编码: 把一个js的内存对象—>文本–>传输与保存
JSON解码: 把一个js的文本–>解码后–>Js的Object数据;
2: JavaScript Object 是一个表结构
object = {
key1: value1,
key2: value2,
key3: {
sub_key: sub_value
….
}
key4: [sub_value1, sub_value2, sub_value3]
};
key: 数字, 字符串;
value: 数字, 逻辑true/false, 数组, 对象object, null 空对象;
mjson
1: JSON编码解码的一个开源的C库;
2: 编译mjson到项目工程中;
JSON编码
1: mjson编码步骤;
1> 创建一个JSON对象:
json_new_string 创建一个字符串对象;
json_new_true/json_new_false 创建一个逻辑对象;
json_new_null: 创建一个null对象;
json_new_array: 创建一个数组对象;
json_new_number: 创建一个数字对象;
json_new_object: 创建一个表对象;
2> 插入key, value,建立好层次关系:
json_insert_pair_into_object, 将key, value插入到object
json_insert_child(man_prop, tmp); 将一个值插入到一个数组;
3> 输出生成字符文本
json_tree_to_string
4> 释放json_t对象: json_free_value: 整个都会释放;
2: mjson解码步骤:
json_parse_document
解码步骤
JSON对象查找
1: json_t* json_find_first_label(parent, key);
2: json_t:
type: JSON_STRING,JSON_NUMBER, JSON_OBJECT, JSON_ARRAY, JSON_TRUE, JSON_FALSE,
JSON_NULL
text: true/false, number, string;