【转】jsoncpp在xcode中的使用

http://blog.csdn.net/ashqal/article/details/8573392

考虑到cocos2dx需要使用jsoncpp做关卡的设置,

尝试用源代码直接放到项目以方便后期生成ios和android平台使用


首先从github下载最新的jsoncpp代码

https://github.com/rboulton/jsoncpp/tree/master/jsoncpp


下来后解压复制到项目文件夹的根目录(不同位置会影响后面的配置)

现在文档的路径为

JsonCppDemo/jsoncpp

JsonCppDemo/JsonCppDemo

JsonCppDemo/JsonCppDemo.xcodeproj


然后在xcode中右击项目名称,选择Add File to “JsonCppDemo”


然后去掉几个不需要的目录

jsoncpp/src/jsontestrunner

jsoncpp/src/test_lib_json

jsoncpp/test/



最后一步,设置Header search path为$(SRCROOT)/jsoncpp/include



接下来在main函数里调用试试

json文件为

[javascript] view plaincopy
  1. {  
  2.     "name" : "小楼一夜听春雨",  
  3.     "age" : 27  
  4. }  

cpp文件为

  1. //  
  2. //  main.cpp  
  3. //  JsonCppDemo  
  4. //  
  5. //  Created by ashqal on 13-2-6.  
  6. //  Copyright (c) 2013年 ashqal. All rights reserved.  
  7. //  
  8.   
  9. #include <iostream>  
  10. #include <fstream>  
  11. #include "json.h"  
  12.   
  13. int main(int argc, const char * argv[])  
  14. {  
  15.   
  16.       
  17.       
  18.     std::ifstream ifs;  
  19.     ifs.open("/Users/ashqal/wwwroot/test.json");  
  20.     if( !ifs.is_open() )  
  21.     {  
  22.         std::cout << "open failed ";  
  23.     }  
  24.     //assert(ifs.is_open());  
  25.       
  26.     Json::Reader reader;  
  27.     Json::Value root;  
  28.     if (!reader.parse(ifs, root, false))  
  29.     {  
  30.         std::cout << "failed! ";  
  31.         return -1;  
  32.     }  
  33.       
  34.     std::string name = root["name"].asString();  
  35.     int age = root["age"].asInt();  
  36.       
  37.     std::cout<<name<<std::endl;  
  38.     std::cout<<age<<std::endl;  
  39.       
  40.     // insert code here...  
  41.     std::cout << "Hello, World! ";  
  42.     return 0;  
  43. }  

上述代码来自

http://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html

原文地址:https://www.cnblogs.com/yssgyw/p/3311545.html