使用CMake引入jsoncpp

    技术2022-07-10  155

    在jni的cpp中使用json,百度了一下,大多都是下面这个库,但是和之前的文档有点出入了,记录一下。

    jsoncpp库地址:

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

    添加jsoncpp库

    在cpp目录下创建一个jsoncpp目录下载jsoncpp项目把src\lib_json文件夹下的文件都拉到项目的cpp/jsoncpp文件夹下(除CMakeLists.txt)再把include\json文件夹下的文件都拉到项目的cpp/jsoncpp文件夹下然后在项目CMakeLists.txt文件中的add_library 中添加这些文件即可 add_library( # Sets the name of the library. myJNI # Sets the library as a shared library. SHARED # Provides a relative path to your source file(s). native-lib.cpp jsoncpp/json_tool.h jsoncpp/json_reader.cpp jsoncpp/json_valueiterator.inl jsoncpp/json_value.cpp jsoncpp/json_writer.cpp jsoncpp/assertions.h jsoncpp/allocator.h jsoncpp/config.h jsoncpp/json_features.h jsoncpp/forwards.h jsoncpp/json.h jsoncpp/reader.h jsoncpp/value.h jsoncpp/version.h jsoncpp/writer.h )

    使用

    // 输出json Json::Value user; user["id"] = 1; user["name"] = "eric"; user["age"] = "30"; for (int i = 0; i < 3; i++) { std::string temp = std::to_string(i); user["list"][i]["ids" + temp] = "10" + temp; } return env->NewStringUTF(user.toStyledString().c_str()); // 解析json Json::Value root; Json::Reader reader; if (reader.parse(json, root)) { //解析成功,获取数据 root["id"].asInt(); root["name"].asCString(); root["list"][0]["ids0"].asCString(); }
    Processed: 0.009, SQL: 9