• C++-JSON


    密码 hTTp://WWW.MuKeDaBa.COM/forum-41-1.html

    JavaScript Object Notation
    是一种传递对象的语法 对象可以是name/vvalue对,数组和其他对象

    在线检查语法

    {
      "skillz": {
        "web": [ 
          {
            "name": "html""years": "5"
          }{
            "name": "css""years": "3" 
          }
        ],
        "database": [
          {
            "name": "sql""years": "7" 
          }
        ]
      }
    }
    //这个里面skillz是最大的一个对象 这个对象包含两个对象web和database 
    //web中含有一个数组 数组中含有两个对象 每个对象里面有两个键值对 
    //database中含有一个数组 数组里面只有一个对象 这个对象有两个键值对
    
    
    "name":"兮动人",
    "age":22,
    "fruits":["apple","pear","grape"]
    
    
    "{
    	"STUDENT":
    		[
    			{
    				"STUDENT":"F",
    				"When":1611893741,
    				"Code":-1,
    				"Msg":"18",
    				"Class":"3-1"
    			}
    		],
    	"DETAIL":	
    		[
    			{
    				"port":8888,
    				"timezone":8,
    				"NAME":"ZHANG",
    				"MATH":70,
    				"ENGLISH":65,
    				"CHINESE":"123",
    				"AGE":19,
    				"reconfigtimes":0
    			}
    		]
    		,"id":1
    }"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    数组(Array)用方括号(“[]”)表示。
    对象(0bject)用大括号(“{}”)表示。可以看作一个容器
    名称/值对(name/value)组合成数组和对象。
    名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
    并列的数据之间用逗号(“,”)分隔 名称和值也用逗号(“,”)隔开

    JSON 是一个命名空间

    JSON::value

    是命名空间中的一个类
    内部存在一个

    typedef std::map<CZString, Value> ObjectValues; 
    
    • 1

    JSON::parse 解析

    是命名空间中的一个类

    将符合JSON语法规则的字符串转化为对象的过程
    eval()函数也可以解析 没去了解

    例子

    CString localParserJson = _T(
    "{
      "skillz": {
        "web": [ 
          {
            "name": "html""years": "5"
          }{
            "name": "css""years": "3" 
          }
        ],
        "database": [
          {
            "name": "sql""years": "7" 
          }
        ]
      }
    }"
    )
    Json::Reader reader;
    Json::Value root;
    reader.parse(CMM_T2UTF(localParserJson), root);
    Json::Value jsonItem = root["skillz"];//root["skillz"] 等价于 root[0]
    Json::Value jsonItem1 = jsonItem["web"];
    CString temp = jsonItem1["name"].asString().c_str();
    for(int i = 0;i<jsonItem1.size();i++)
    {
    	CString temp = jsonItem1[i].asString().c_str();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
  • 相关阅读:
    innovus:报告到clock root物理距离最远的sink
    Joe 主题 Halo 移植版搭建部署教程
    前端css粘性布局,顶部吸附效果(position: sticky)
    香草酸豌豆白蛋白1b纳米粒Vanillic Acid-PA1b|汉黄芩苷牛血清白蛋白纳米粒Wogonoside-BSA|科研试剂
    Redis哨兵模式配置文件详解
    还不会用 Noi-Linux 2.0?装机及多种使用方式整合
    局域网远程yum源制做
    科技型中小企业认定时间和有效期?
    三阶段面试题——vue
    kubernetes Service详解
  • 原文地址:https://blog.csdn.net/qq_43535469/article/details/126366093