字符串转成JSON(其中str为字符串)
1 2 3 4 5 | Json::Reader Reader; Json::Value DevJson; Reader.parse(str,DevJson); int dev_id = DevJson[ "dev_id" ].asInt(); int index = DevJson[ "index" ].asInt(); |
JSON转字符串(其中DevStr为字符串)
1 2 3 | Json::Value DevJson = DevsJson[i]; std::string DevStr = DevJson.toStyledString(); printf ( "Msg:%s" , DevStr.c_str()); |
JSON数组解析:
1 2 3 4 5 6 7 8 9 10 | 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()); } |
数组添加:
1 2 3 4 5 | Json::Value root; Json::Value person; person[ "name" ] = "hello world" ; person[ "age" ] = 100; root.append(person); |
结果:[{"age":100,"name":"hello world"}]
---------------------------------------------------
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 | // 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; } |
输出结果: