源字符串

{
    "menu":    {
        "header":    "SVG Viewer",
        "items":    [{
                "id":    "Open"
            }, {
                "id":    "OpenNew",
                "label":    "Open New"
            }, null, {
                "id":    "ZoomIn",
                "label":    "Zoom In"
            }, {
                "id":    "ZoomOut",
                "label":    "Zoom Out"
            }, {
                "id":    "OriginalView",
                "label":    "Original View"
            }, null, {
                "id":    "Quality"
            }, {
                "id":    "Pause"
            }, {
                "id":    "Mute"
            }, null, {
                "id":    "Find",
                "label":    "Find..."
            }, {
                "id":    "FindAgain",
                "label":    "Find Again"
            }, {
                "id":    "Copy"
            }, {
                "id":    "CopyAgain",
                "label":    "Copy Again"
            }, {
                "id":    "CopySVG",
                "label":    "Copy SVG"
            }, {
                "id":    "ViewSVG",
                "label":    "View SVG"
            }, {
                "id":    "ViewSource",
                "label":    "View Source"
            }, {
                "id":    "SaveAs",
                "label":    "Save As"
            }, null, {
                "id":    "Help"
            }, {
                "id":    "About",
                "label":    "About Adobe CVG Viewer..."
            }]
    }
}

    //先构建cJSON对象CJSON *root=CJSON_CreateObject();CJSON *menu=CJSON_AddObjectToObject(root,"menu");CJSON_AddStringToObject(menu,"header","SVG Viewer");CJSON *items=CJSON_AddArrayToObject(menu,"items");CJSON *element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","Open");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","OpenNew");CJSON_AddStringToObject(element,"label","Open New");CJSON_AddItemToArray(items,element);element=CJSON_CreateNull();CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","ZoomIn");CJSON_AddStringToObject(element,"label","Zoom In");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","ZoomOut");CJSON_AddStringToObject(element,"label","Zoom Out");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","OriginalView");CJSON_AddStringToObject(element,"label","Original View");CJSON_AddItemToArray(items,element);element=CJSON_CreateNull();CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","Quality");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","Pause");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","Mute");CJSON_AddItemToArray(items,element);element=CJSON_CreateNull();CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","Find");CJSON_AddStringToObject(element,"label","Find...");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","FindAgain");CJSON_AddStringToObject(element,"label","Find Again");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","Copy");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","CopyAgain");CJSON_AddStringToObject(element,"label","Copy Again");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","CopySVG");CJSON_AddStringToObject(element,"label","Copy SVG");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","ViewSVG");CJSON_AddStringToObject(element,"label","View SVG");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","ViewSource");CJSON_AddStringToObject(element,"label","View Source");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","SaveAs");CJSON_AddStringToObject(element,"label","Save As");CJSON_AddItemToArray(items,element);element=CJSON_CreateNull();CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","Help");CJSON_AddItemToArray(items,element);element=CJSON_CreateObject();CJSON_AddStringToObject(element,"id","About");CJSON_AddStringToObject(element,"label","About Adobe CVG Viewer...");CJSON_AddItemToArray(items,element);char *cjson_string=CJSON_Print(root);CJSON *source=CJSON_Parse(cjson_string);printf("%s\n",CJSON_Print(source));CJSON_Delete(source);
//    FILE *fp=fopen("test.json","w+");
//    fprintf(fp,"%s",CJSON_Print(source));
//    fclose(fp);//解析//提取二级目录下的header信息CJSON *tmp=CJSON_GetObjectItemCaseSensitive(menu,"header");if(CJSON_IsString(tmp))printf("%s\n",tmp->valuestring);//提取数组项,并遍历输出,id label信息tmp=CJSON_GetObjectItemCaseSensitive(menu,"items");CJSON *child=NULL;if(tmp){printf("%s \n",tmp->string);child=tmp->child;}while(child){printf("-------\n");if(CJSON_IsNull(child))printf("NULL!\n");else{tmp=child->child;while(tmp){if(CJSON_IsString(tmp)){printf("%s :%s \n",tmp->string,tmp->valuestring);}else{printf("false fomat!");}tmp=tmp->next;}}child=child->next;}

控制台输出:

{
    "menu":    {
        "header":    "SVG Viewer",
        "items":    [{
                "id":    "Open"
            }, {
                "id":    "OpenNew",
                "label":    "Open New"
            }, null, {
                "id":    "ZoomIn",
                "label":    "Zoom In"
            }, {
                "id":    "ZoomOut",
                "label":    "Zoom Out"
            }, {
                "id":    "OriginalView",
                "label":    "Original View"
            }, null, {
                "id":    "Quality"
            }, {
                "id":    "Pause"
            }, {
                "id":    "Mute"
            }, null, {
                "id":    "Find",
                "label":    "Find..."
            }, {
                "id":    "FindAgain",
                "label":    "Find Again"
            }, {
                "id":    "Copy"
            }, {
                "id":    "CopyAgain",
                "label":    "Copy Again"
            }, {
                "id":    "CopySVG",
                "label":    "Copy SVG"
            }, {
                "id":    "ViewSVG",
                "label":    "View SVG"
            }, {
                "id":    "ViewSource",
                "label":    "View Source"
            }, {
                "id":    "SaveAs",
                "label":    "Save As"
            }, null, {
                "id":    "Help"
            }, {
                "id":    "About",
                "label":    "About Adobe CVG Viewer..."
            }]
    }
}
SVG Viewer
items
-------
id :Open
-------
id :OpenNew
label :Open New
-------
NULL!
-------
id :ZoomIn
label :Zoom In
-------
id :ZoomOut
label :Zoom Out
-------
id :OriginalView
label :Original View
-------
NULL!
-------
id :Quality
-------
id :Pause
-------
id :Mute
-------
NULL!
-------
id :Find
label :Find...
-------
id :FindAgain
label :Find Again
-------
id :Copy
-------
id :CopyAgain
label :Copy Again
-------
id :CopySVG
label :Copy SVG
-------
id :ViewSVG
label :View SVG
-------
id :ViewSource
label :View Source
-------
id :SaveAs
label :Save As
-------
NULL!
-------
id :Help
-------
id :About
label :About Adobe CVG Viewer...

cJSON字符串解析相关推荐

  1. 实现迷你解析器把字符串解析成NestInteger类 Mini Parser

    为什么80%的码农都做不了架构师?>>>    问题: Given a nested list of integers represented as a string, implem ...

  2. java 字符串解析

    StringTokenizer tokenizer = new StringTokenizer(number, ",");         boolean bool = true; ...

  3. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  4. as3转换为html5,AS3和HTML5 - 使用正则表达式将字符串解析为数组

    我一直在寻找和使用RegEx一段时间,并试图找到我可以应用于AS3和HTML5的解决方案.AS3和HTML5 - 使用正则表达式将字符串解析为数组 我有一个自定义用户输入部分,256个字符,他们可以自 ...

  5. 关于json格式字符串解析并用mybatis存入数据库

    园子里面找了很多关于json解析后存入数据库的方法,不是太乱,就是没有写完,我下面的主题代码多是受下面两位的启发,请按顺序查看 http://www.cnblogs.com/tian830937/p/ ...

  6. xml html 转化为字符串,XSLT:将字符串解析为XML节点集(concret:将HTML-String转换为节点集)?...

    我面临的问题是我在XML中有一个字符串的节点,代表HTML. 我需要削减该字符串,但是,当然,这可能导致在invalide HTML的标记(例如,如果我切字符串总是后30个字符我很容易失去闭元件等等) ...

  7. json解析和字符串解析_高效创建和解析定界字符串

    json解析和字符串解析 描述 (Description) Converting a delimited string into a dataset or transforming it into u ...

  8. 解析php变量,php使用parse_str实现查询字符串解析到变量中的方法

    本文实例讲述了php使用parse_str实现查询字符串解析到变量中的方法.分享给大家供大家参考,具体如下: parse_str()函数可实现把字符串解析到变量中,这意味着实现了字符串与变量之间的一种 ...

  9. Oracle的字符串转换成二进制,将二进制字符串解析为文本/字符

    我可能忽略了一些愚蠢的东西,但我从来没有必要在代码中处理二进制文件,并认为在加密程序中练习它是个好主意, .长话短说,我能够将字符串转换为二进制(以字符串的形式),但无法弄清楚如何做相反的操作.将二进 ...

  10. 如Java8的LocalDate与Date相互转换、ZonedDateTime等常用操作包含多个使用示例、Java8时区ZoneId的使用方法、Java8时间字符串解析成类

    下面将依次介绍 Date转Java8时间类操作 ,Java8时间类LocalDate常用操作(如获得当前日期,两个日期相差多少天,下个星期的日期,下个月第一天等) 解析不同时间字符串成对应的Java8 ...

最新文章

  1. 获取网页源代码的最简单办法
  2. 自定义取值距离的javascript random()函数
  3. JVM指令:invokeSpecial/invokeVirtual/invokeStatic/invokeInterface/invokeDynamic方法调用指令
  4. android -------- MVP+DataBinding 的使用
  5. 51nod 1847 奇怪的数学题(数论/min25筛/杜教筛/斯特林数)
  6. antd react dva在model中使用另一个model的state值
  7. 大型分布式C++框架《三:序列化与反序列化》
  8. 【ACL2020】DeeBERT:衡量性能与效率的 BERT 推理方法
  9. 北京调频(FM)无线广播发射频率/频道表 (转载)
  10. linux进程关系图谱
  11. 初中数学抽象教学的案例_初中数学教学案例与反思
  12. 参加科学教师与计算机培训总结,小学科学教师培训总结
  13. QT设置应用程序图标设置
  14. 管中窥豹,深入总部调研苏宁易购研发
  15. 【ES6】阮一峰promise
  16. ISO认证证书上常见的认可标志
  17. 牛客网习题集 - Wannafly挑战赛13- D applese生日
  18. 【持续更新】java多线程面试题整理
  19. web应用测试的具体流程(等保测评相关)
  20. Android画图drawText入门(一)-字体结构

热门文章

  1. android QQ好友分享
  2. 传奇DBC2000安装及配置图文详细教程
  3. logo语言编程介绍
  4. 2021年系统架构设计师考试大纲
  5. 那些年,我们一起追过的seo培训!
  6. 什么是数据抽取 --全量抽取、增量抽取
  7. 应用系统设计:在线教育平台,B2C平台设计
  8. 软件测试之如何介绍自己的项目
  9. Android车载应用开发与分析(11)- 车载Android应用开发入门指南
  10. 笔记本计算机故障排除,笔记本电脑液晶显示屏故障诊断与排除