@@ -22,7 +22,7 @@ $ time ./test_speed <重复次数> < xxx.json
2222json_value_t *json_value_parse (const char * text);
2323
2424/* 销毁JSON value
25- @val :JSON value对象。一般由parse函数产生 。* /
25+ @val :由parse, create或copy生成的JSON value对象。* /
2626void json_value_destroy(json_value_t * val);
2727
2828/* 返回JSON value类型
@@ -102,13 +102,18 @@ json_array_for_each_prev(val, arr)
102102 v_obj = json_value_create(JSON_VALUE_OBJECT);
103103 v_arr = json_value_create(JSON_VALUE_ARRAY);
104104 v_true = json_value_create(JSON_VALUE_TRUE);
105- 函数返回一个JSON value对象。非const,因此需要被销毁 。 */
105+ 函数返回一个JSON value对象。非const,因此需要被销毁或转移 。 */
106106json_value_t *json_value_create(int type, ...);
107107
108+ /* 复制JSON value
109+ @val: 被复制的JSON value
110+ 函数返回一个JSON value对象。非const,因此需要被销毁或转移。 */
111+ json_value_t *json_value_copy(const json_value_t *val);
112+
108113/* 扩展一个JSON object,返回被扩展的JSON value
109114 @obj: JSON object对象
110115 @name: 扩展的JSON member的name
111- @type: 扩展的JSON member类型,或者传0代表扩展进一个已有的JSON value
116+ @type: 扩展的JSON member类型,或者传0代表转移进一个已有的JSON value
112117 注意这是一个可变参数的函数,示例:
113118 v_num = json_object_append(obj, "pi", JSON_VALUE_NUMBER, 3.14);
114119 v_obj = json_object_append(obj, "user", JSON_VALUE_OBJECT);
@@ -119,13 +124,13 @@ const json_value_t *json_object_append(json_object_t *obj, const char *name,
119124/* 从JSON object里移除一个value并返回
120125 @val: 要移除的JSON value
121126 @obj: JSON object对象
122- 注意,返回值非const,需要被销毁,也可以被扩展到其它的JSON object或JSON array */
127+ 注意,函数不会自动销毁value,而是作为返回值返回让用户自行被销毁或转移。 */
123128json_value_t *json_object_remove(const json_value_t *val,
124129 json_object_t *obj);
125130
126131/* 扩展JSON array,返回被扩展的JSON value
127132 @arr: JSON array对象
128- @type: 扩展的JSON member类型,或者传0代表传入一个已有的JSON value
133+ @type: 扩展的JSON member类型,或者传0代表转移入一个已有的JSON value
129134 注意这是一个可变参数的函数,示例:
130135 v_str = json_array_append(arr, JSON_VALUE_STRING, "hello");
131136 等价于:
@@ -135,7 +140,7 @@ const json_value_t *json_array_append(json_array_t *arr, int type, ...);
135140/* 从JSON array里移除一个JSON value并返回
136141 @val: 要移除的JSON value
137142 @arr: JSON array对象
138- 注意,返回值非const,需要被销毁,也可以被扩展到其它的JSON object或JSON array */
143+ 注意,函数不会自动销毁value,而是作为返回值返回让用户自行被销毁或转移。 */
139144json_value_t *json_array_remove(const json_value_t *val,
140145 json_object_t *arr);
141146~~~
0 commit comments