字符串转成JSON(其中str为字符串)
Json::Reader Reader;
Json::Value DevJson;
Reader.parse(str,DevJson);
int dev_id = DevJson["dev_id"].asInt();
int index = DevJson["index"].asInt();
JSON转字符串(其中DevStr为字符串)
Json::Value DevJson = DevsJson[i];
std::string DevStr = DevJson.toStyledString();
printf("Msg:%s", DevStr.c_str());
JSON数组解析:
Json::Reader Reader;
Json::Value DevsJson;
Reader.parse(MsgStr, DevsJson);
int siNum = DevsJson.size();
for(int i=0; i < siNum; i++)
{
Json::Value DevJson = DevsJson[i];
std::string DevStr = DevJson.toStyledString();
printf("Msg:%s", DevStr.c_str());
}
数组添加:
Json::Value root;
Json::Value person;
person["name"] = "hello world";
person["age"] = 100;
root.append(person);
结果:[{"age":100,"name":"hello world"}]
---------------------------------------------------
// MyTest.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "iostream"
#include "time.h"
#include "map"
#include <windows.h>
#include <sstream>
#include <list>
#include "json\json.h"
#include "stdint.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
Json::Value value;
uint32_t ssrc1 = 5305490;
value["ssrc1"] = ssrc1;
uint32_t ssrc2 = 2152748638;
value["ssrc2"] = ssrc2;
std::string body = value.toStyledString();
cout << body << endl;
Json::Reader reader;
Json::Value data;
reader.parse(body, data, false);
if (data.isMember("ssrc1"))
{
cout << "ssrc1";
if (data["ssrc1"].isInt())
cout << " is Int" << endl;
if (data["ssrc1"].isUInt())
cout << " is UInt" << endl;
}
if (data.isMember("ssrc2"))
{
cout << "ssrc2";
if (data["ssrc2"].isInt())
cout << " is Int" << endl;
if (data["ssrc2"].isUInt())
cout << " is UInt" << endl;
}
uint32_t ssrc11 = data["ssrc1"].asUInt();
uint32_t ssrc21 = data["ssrc2"].asUInt();
cout << "ssrc11:" << ssrc11 << endl;
cout << "ssrc21:" << ssrc21 << endl;
system("pause");
return 0;
}
输出结果: