zoukankan      html  css  js  c++  java
  • JSON & CJsonObject 入门笔记

    JSON: JavaScript Object Notation

    语法规则

    数据存储在名称-值对中,数据由逗号分隔,中括号保存数组,大括号保存对象。

    "字段名" : 字段值
    {"name":"Alice", "ID":1}
    "sites":[{"name":"A"}, {"name":"B"}]
    

    在 JS 中,可以用 parse()stringify() 方法来实现字符串与对象之间的转化。

    在 C++ 中,我们可以用 JSONObject 来维护 JSON 格式的数据结构,实现字符串和 JSON 对象之间的转化。

    一个例子

    #include <iostream>
    #define _CRT_SECURE_NO_WARNINGS
    #include "CJsonObject.hpp"
    #include <vector>
    
    using namespace std;
    using namespace neb;
    
    struct Point
    {
        int x;
        int y;
        CJsonObject ToJson()
        {
            CJsonObject objResult;
            objResult.Add("x", x);
            objResult.Add("y", y);
            return objResult;
        }
        void FromJson(CJsonObject objPoint)
        {
            objPoint.Get("x", x);
            objPoint.Get("y", y);
        }
    };
    
    struct PointArray
    {
        vector<Point> vec;
        void Insert(Point point)
        {
            vec.push_back(point);
        }
        CJsonObject ToJson()
        {
            CJsonObject objArray;
    
            for (auto p : vec)
            {
                objArray.Add(p.ToJson());
            }
            return objArray;
        }
        void FromJson(CJsonObject objArray)
        {
            string nJsonKey;
            CJsonObject nJsonValue;
            
            vec.clear();
            
            int nSize = objArray.GetArraySize();
            for (int i = 0; i < nSize; i++)
            {
                CJsonObject objPoint = objArray[i];
                Point point;
                point.FromJson(objPoint);
                vec.push_back(point);
            }
        }
    };
    
    int main()
    {
        PointArray pa;
        Point p;
        p.x = 1;
        p.y = 1;
        pa.Insert(p);
        p.x = 2;
        p.y = 2;
        pa.Insert(p);
        CJsonObject obj = pa.ToJson();
        cout << obj.ToString() << endl;
        PointArray cpa;
        cpa.FromJson(obj);
        obj = cpa.ToJson();
        cout << obj.ToString() << endl;
    
    }
    
  • 相关阅读:
    VIM配置
    guanyuzhuguosha
    会议室同步时钟布置
    npm ERR! missing script: dev npm ERR! A complete log of this run can be found in: npm ERR!
    Xmind2021安装激活破解
    SpringCloudAlibaba 中文文档
    flex布局 滚动条失效
    Luogu P3397 地毯
    Luogu P4343 自动刷题机
    Luogu P1902 刺杀大使
  • 原文地址:https://www.cnblogs.com/mollnn/p/13669028.html
Copyright © 2011-2022 走看看