Linux下的Json串解析

 

1、安装 jsoncpp

 sudo apt-get install libjsoncpp-dev 

2、位置

头文件在:

/usr/include/jsoncpp/json

动态库在:

/usr/lib/x86_64-linux-gnu/libjsoncpp.so.***

3、使用

 

 1 #include <stdio.h>
 2 #include <string>
 3 #include <iostream>
 4 #include <jsoncpp/json/json.h>
 5 using namespace std;
 6 int main()
 7 {
 8 
 9     string strValue =  "{\"array\":[{\"recipient_id\":\"1235\",\"text\":\"好,请稍等,正在为您查询\"},{\"recipient_id\":\"1235\",\"text\":\"结果为***\"},{\"recipient_id\":\"1235\",\"text\":\"您还需要什么服务?\"}]}";
10     cout << "JsonString:" << strValue << endl;
11     Json::Reader reader; 
12     Json::Value root; 
13     if (reader.parse(strValue, root))
14     { 
15         // if (!root["key"].isNull())
16         // {
17         //     std::string strValue= root["key"].asString(); 
18         //     std::cout << strValue<< std::endl; 
19         // }
20         Json::Value arrayObj = root["array"]; 
21         for (int i=0; i<arrayObj.size(); i++) 
22         { 
23             string id = arrayObj[i]["recipient_id"].asString(); 
24             string str = arrayObj[i]["text"].asString(); 
25             std::cout << "text:" << str << std::endl;  
26             std::cout << "recipient_id:" << id << std::endl;  
27         } 
28     }
29 
30     string strValue1 =  "[{\"recipient_id\":\"1235\",\"text\":\"好,请稍等,正在为您查询\"},{\"recipient_id\":\"1235\",\"text\":\"结果***\"},{\"recipient_id\":\"1235\",\"text\":\"您还需要什么服务?\"}]";
31     Json::Value array;
32 
33     cout << "JsonString:" << strValue1 << endl;
34 
35     if (reader.parse(strValue1, array))
36     { 
37         for (int i=0; i<array.size(); i++) 
38         { 
39             string id = array[i]["recipient_id"].asString(); 
40             string str = array[i]["text"].asString(); 
41             string str1 = array[i]["text1"].asString(); 
42             std::cout << "text1:" << str1 << std::endl;
43             std::cout << "text:" << str << std::endl;  
44             std::cout << "recipient_id:" << id << std::endl;  
45         } 
46     }
47     return 0;
48 }
49 
50 /*
51 * 使用以下命令进行编译:
52 * g++ -std=c++11 -o JsonTest JsonTest.cpp -ljsoncpp
53 */

4、运行结果

 

posted @ 2020-08-27 16:00  西瓜不懂柠檬的酸  Views(1236)  Comments(0Edit  收藏  举报
levels of contents