cJSON解析一例通

前端之家收集整理的这篇文章主要介绍了cJSON解析一例通前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. #include<iostream>
  2. #include"cJson/cJSON.h"
  3.  
  4. usingnamespacestd;
  5.  
  6. voidparse_json_node(cJSON*json,size_t*align_count)
  7. {
  8. //打印缩进
  9. for(inti=0;i<*align_count;i++)
  10. {
  11. printf("");
  12. }
  13. switch(json->type)
  14. {
  15. casecJSON_False:
  16. printf("%s:false",json->string);
  17. break;
  18. casecJSON_True:
  19. printf("%s:true",json->string);
  20. break;
  21. casecJSON_NULL:
  22. printf("null");
  23. break;
  24. casecJSON_Number:
  25. printf("%s:%ll",json->string,json->valuedouble);
  26. break;
  27. casecJSON_String:
  28. printf("%s:\"%s\"",json->valuestring);
  29. break;
  30. casecJSON_Array:
  31. {
  32. if(json->string)
  33. {
  34. printf("%s:",json->string);
  35. }
  36. ++*align_count;
  37. printf("[\n");
  38.  
  39.  
  40. intlen=cJSON_GetArraySize(json);
  41. for(inti=0;i<len;i++)
  42. {
  43. cJSON*child_json=cJSON_GetArrayItem(json,i);
  44. parse_json_node(child_json,align_count);
  45. printf("\n");
  46. }
  47. --*align_count;
  48. for(inti=0;i<*align_count;i++)
  49. {
  50. printf("");
  51. }
  52. printf("]");
  53.  
  54. }
  55. break;
  56. casecJSON_Object:
  57. {
  58. if(json->string)
  59. {
  60. printf("%s:",json->string);
  61. }
  62. ++*align_count;
  63. printf("{\n");
  64. intlen=cJSON_GetArraySize(json);
  65. for(inti=0;i<len;i++)
  66. {
  67. cJSON*child_json=cJSON_GetArrayItem(json,align_count);
  68. printf("\n");
  69. }
  70. --*align_count;
  71. for(inti=0;i<*align_count;i++)
  72. {
  73. printf("");
  74. }
  75. printf("}");
  76. }
  77. break;
  78. }
  79. }
  80.  
  81. intmain()
  82. {
  83. longlongfilesize=0;
  84. FILE*file=fopen("json/test5","rb+");
  85. fseek(file,SEEK_END);
  86. filesize=ftell(file);
  87. fseek(file,SEEK_SET);
  88. char*buff=newchar[filesize];
  89. fread(buff,1,filesize,file);
  90. fclose(file);
  91. cJSON*json=cJSON_Parse(buff);
  92.  
  93. size_talign_count=0;
  94. parse_json_node(json,&align_count);
  95.  
  96. /*cJSON*menu=cJSON_GetObjectItem(json,"menu");
  97. intmenu_size=cJSON_GetArraySize(menu);
  98. cJSON*items=cJSON_GetArrayItem(menu,1);
  99. intitems_size=cJSON_GetArraySize(items);
  100. cJSON*item1=cJSON_GetArrayItem(items,0);
  101. intitem1_size=cJSON_GetArraySize(item1);
  102. cJSON*item1_attr1=cJSON_GetArrayItem(item1,0);
  103. */
  104. return0;
  105. }

简单明了,无需解释!

猜你在找的Json相关文章