• 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;
    
    }
    
  • 相关阅读:
    浅析人脸检测之Haar分类器方法
    python调用网络摄像机
    jvm常用优化方案和方法
    jvm优化-垃圾收集器的类型
    jvm调优-垃圾回收算法
    JVM调优-java虚拟机内存模型及参数设置
    java NIO-Buffer
    java NIO-Channel
    java权限设置文件-java.policy
    java安全-安全管理器
  • 原文地址:https://www.cnblogs.com/mollnn/p/13669028.html
Copyright © 2020-2023  润新知