头文件什么的都在首篇(json-c学习1) linux c语言解析json数组(纯代码),这里只写一个简单的函数:
287 void PkgBodyJsonFuncton(void)
288 {
289 //封装成如下形式的json内容:
290 /*
291 {
292 "loop_number": 1,
293 "sensor_address:1,
294 "body":
295 {
296 "loop_number":2,"sensor_address":3","module_id":4
297 }
298 }
299 */
300 json_object *pValue = NULL;
301 json_object *pObjectSerPro = NULL;
302 char msg[400] = {0};
303 int loopNumber = 1;
304 int sensorAddress = 2;
305 int ln = 2;
306 int sd = 3;
307 int mi = 4;
308 //创建json对象
309 pObjectSerPro = json_object_new_object();
310 //添加内容
311 pValue = json_object_new_int(loopNumber);
312 json_object_object_add(pObjectSerPro, LOOP_NUMBER, pValue);
313 pValue = json_object_new_int(sensorAddress);
314 json_object_object_add(pObjectSerPro, SENSOR_ADDRESS, pValue);
315
316 json_object *jBody = json_object_new_object(); //son json
317 pValue = json_object_new_int(ln);
318 json_object_object_add(jBody, LOOP_NUMBER, pValue);
319 pValue = json_object_new_int(sd);
320 json_object_object_add(jBody, SENSOR_ADDRESS, pValue);
321 pValue = json_object_new_int(mi);
322 json_object_object_add(jBody, MODULE_ID, pValue);
323
324 json_object_object_add(pObjectSerPro, BODY, jBody);
325
326 memset(msg, 0, 400);
327 sprintf(msg, "%s", (char*)(json_object_to_json_string(pObjectSerPro)));
328
329 printf("msg = %s\n", msg);
330
331 }
main函数:
333 int main(void)
334 {
335 char *body = TestBodyFunction();
336 ParsingBodyFunction(body);
337 printf("=====================================================\n");
338 //struct json_object *array = TestArrayFunction();
339 char *array = TestArrayFunction();
340 ParsingArrayFunction(array);
341 printf("=====================================================\n");
342 char *str = "[{\"loop_number\":1, \"sensor_address\":2}]";
343 int len = strlen(str);
344 printf("len = %d\n", len);
345 PkgArrayFunction();
346 printf("=====================================================\n");
347 PkgJsonFunction();
348 printf("=====================================================\n");
349 PkgBodyArrayFunction();
350 printf("=====================================================\n");
351 PkgBodyJsonFuncton();
352 return 0;
353 }
354
355
测试结果: