jsoncpp 0.5 ARM移植

1、下载jsonapp 0.5

  https://github.com/open-source-parsers/jsoncpp

2、编译

  platform 没有包含 arm 平台,需要把源码提取出来,独立编译,在/opt目录下新建目录jsoncpp,将源码中的include目录和src/lib_json目录下的所有文件拷贝到jsoncpp目录下,再运行以下命令:

  arm-linux-gnueabihf-g++ -C *.cpp -I./include -fPIC

  ar cr libjson_arm_gnueabihf.a *.o

  这时会在jsoncpp目录下生成libjson_arm_gnueabihf.a库

  注:

  -fPIC:表明使用地址无关代码。PIC:Position Independent Code

  include/json目录下的头文件和libjson_arm_gnueabihf.a文件一起放在Qt工程中。

3、jsoncpp的使用

  • 从字符串解释json

  void ParseJsonFromString()  

  {  

    const char* str = "{"uploadid": "UP000000","code": 100,"msg": "","files": ""}";  

    Json::Reader reader;  

     Json::Value root;  

    if (reader.parse(str, root))  // reader将Json字符串解析到root,root将包含Json里所有子元素   

    {  

      std::string upload_id = root["uploadid"].asString();  // 访问节点,upload_id = "UP000000"   

      int code = root["code"].asInt();    // 访问节点,code = 100   

    }  

    return 0;  

  } 

  • 生成json字符串

  Json::FastWriter writer;  

  Json::Value root;

  root["uploadid"] = "UP000000";

  root["code"] = 100;

  root["msg"] = "";

  root["files"] = "";

  std::string str = writer.write(root);

  str内容为“{"uploadid": "UP000000","code": 100,"msg": "","files": ""}”;

原文地址:https://www.cnblogs.com/zhangnianyong/p/8410819.html