• 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
  • 相关阅读:
    神经网络深度学习(六)问题排查
    游戏登录界面制作
    电容笔可以用什么代替?双十二平价电容笔推荐
    英伟达禁售?FlashAttention助力LLM推理速度提8倍
    计算机基础内容——网络基础
    Linux——环境基础开发工具的使用
    Spring 框架中都用到了哪些设计模式:单例模式、策略模式、代理模式
    基于后退走廊的轨迹优化方法(Bubble Planner)
    一文掌握Python虚拟环境-提升你的开发效率
    centos7.9系统安装cuda+cudnn+pytorch+python
  • 原文地址:https://blog.csdn.net/qq_43535469/article/details/126366093