码迷,mamicode.com
首页 > Web开发 > 详细

jsoncpp代码实例

时间:2014-10-29 16:41:11      阅读:630      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   ar   使用   java   for   

最近开始使用 jsoncpp,以前一直在使用cJSON,但是使用cJSON的时候经常会忘记free掉json的内存,结果造成了内存泄露,程序跑着跑着就崩溃了。所以最近把json转移到了jsoncpp上。

jsoncpp的代码源文件放在了百度网盘 : http://pan.baidu.com/s/1ntqQhIT 或 jsoncpp.zip

下面是jsoncpp源代码中的test实例,大家感受一下啊。

 1 #include <string>
 2 #include <json/json.h>
 3 
 4 void readJson();
 5 void writeJson();
 6 
 7 int main(int argc, char** argv) {
 8     readJson();
 9     writeJson();
10     return 0;
11 }
12 
13 void readJson() {
14     using namespace std;
15     std::string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";
16 
17     Json::Reader reader;
18     Json::Value value;
19 
20     if (reader.parse(strValue, value))
21     {
22         std::string out = value["name"].asString();
23         std::cout << out << std::endl;
24         const Json::Value arrayObj = value["array"];
25         for (unsigned int i = 0; i < arrayObj.size(); i++)
26         {
27             if (!arrayObj[i].isMember("cpp")) 
28                 continue;
29             out = arrayObj[i]["cpp"].asString();
30             std::cout << out;
31             if (i != (arrayObj.size() - 1))
32                 std::cout << std::endl;
33         }
34     }
35 }
36 
37 void writeJson() {
38     using namespace std;
39 
40     Json::Value root;
41     Json::Value arrayObj;
42     Json::Value item;
43 
44     item["cpp"] = "jsoncpp";
45     item["java"] = "jsoninjava";
46     item["php"] = "support";
47     arrayObj.append(item);
48 
49     root["name"] = "json";
50     root["array"] = arrayObj;
51 
52     root.toStyledString();
53     std::string out = root.toStyledString();
54     std::cout << out << std::endl;
55 }

 

下面是运行的结果

 1 json
 2 jsoncpp
 3 {
 4    "array" : [
 5       {
 6          "cpp" : "jsoncpp",
 7          "java" : "jsoninjava",
 8          "php" : "support"
 9       }
10    ],
11    "name" : "json"
12 }

 

作者:风波

mail : fengbohello@qq.com

 

jsoncpp代码实例

标签:style   blog   http   color   os   ar   使用   java   for   

原文地址:http://www.cnblogs.com/fengbohello/p/4059435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!