zoukankan      html  css  js  c++  java
  • Poco C++——JSON解析

    #include <iostream>
    #include "Poco/Dynamic/Var.h"
    #include "Poco/Dynamic/Pair.h"
    #include "Poco/Dynamic/VarIterator.h"
    #include "Poco/JSON/Array.h"
    #include <vector>
    #include <map>
    #include "Poco/JSON/Parser.h"
    
    using Poco::Dynamic::Var;
    using Poco::JSON::Parser;
    using Poco::Dynamic::Pair;
    using Poco::JSON::Array;
    using Poco::JSON::Object;
    
    int main(int argc, const char * argv[]) {
        using namespace std;
        Poco::JSON::Object scores;
        scores.set("数学", 98);
        scores.set("英语", 99);
        scores.set("语文", 89);
        scores.set("化学", 100);
        scores.set("物理", 98);
        scores.set("生物", 96);
        Poco::JSON::Object student;
        student.set("name", "小南");
        student.set("address", "四川省成都市锦江区锦华路一段7号爱家丽苑1栋1单元305室");
        student.set("class", "四川省成都市第七中学2010级2班");
        student.set("grade", Poco::Dynamic::Var(scores));
        Poco::Dynamic::Var JSON(student);
        cout << JSON.toString() << endl;
        string theJSON = JSON.toString();
        Poco::JSON::Parser parser;
        Poco::Dynamic::Var json = parser.parse(theJSON);
        Poco::JSON::Object theObj = *json.extract<Poco::JSON::Object::Ptr>();
        Poco::Dynamic::Var theScores = theObj.get("grade");
        Poco::Dynamic::Var name = theObj.get("name");
        Poco::Dynamic::Var address = theObj.get("address");
        Poco::Dynamic::Var theClass = theObj.get("class");
        Poco::JSON::Object grade = *theScores.extract<Poco::JSON::Object::Ptr>();
        Poco::Dynamic::Var math = grade.get("数学");
        Poco::Dynamic::Var english = grade.get("英语");
        Poco::Dynamic::Var chinese = grade.get("语文");
        Poco::Dynamic::Var wuli = grade.get("物理");
        Poco::Dynamic::Var shengwu = grade.get("生物");
        Poco::Dynamic::Var huaxue = grade.get("化学");
        cout << "
    
    姓名: " << name.toString() << endl
             << "班级: " << theClass.toString() << endl
             << "地址: " << address.toString() << endl
             << "数学: " << math.convert<int>() << endl
             << "语文: " << chinese.convert<int>() << endl
             << "化学: " << huaxue.convert<int>() << endl
             << "物理: " << wuli.convert<int>() << endl
        << "生物: " << shengwu.convert<int>() << endl;
        return 0;
    }
    
    输出结果:
    {
      "address" : "四川省成都市锦江区锦华路一段7号爱家丽苑1栋1单元305室",
      "class" : "四川省成都市第七中学2010级2班",
      "grade" : {
        "化学" : 100,
        "数学" : 98,
        "物理" : 98,
        "生物" : 96,
        "英语" : 99,
        "语文" : 89
      },
      "name" : "小南"
    }
    
    
    姓名: 小南
    班级: 四川省宣汉中学2010级2班
    地址: 四川省成都市锦江区锦华路一段7号爱家丽苑1栋1单元305室
    数学: 98
    语文: 89
    化学: 100
    物理: 98
    生物: 96
  • 相关阅读:
    硬件的效率与一致性
    深入理解SPI机制-服务发现机制
    spring 之7种重要设计模式
    list里放map list 放list
    jvm 三种编译
    几种不同格式的json解析
    Java知识点梳理——集合
    判断2个list中是否有相同的数据(相交)Collections.disjoint
    键相同,比较两个map中的值是否相同
    Map类型数据导出Excel--poi
  • 原文地址:https://www.cnblogs.com/mupiaomiao/p/4755538.html
Copyright © 2011-2022 走看看