目录
jsoncpp库 Android平台
GitHub - AlexMofer/jsoncpp-for-Android: 编译jsoncpp为Android SO库
读取例子:
char *json_path="/data/RK3588/ccc.json";
std::ifstream file(json_path);
if (!file.is_open()) {
return -1;
}
Json::Reader reader;
Json::Value root;
if (!reader.parse(file, root, false)) {
file.close();
return -2;
}
file.close();
// env->ReleaseStringUTFChars(filePath, path);
std::string imagePath = root["imagePath"].asString();
int imageHeight = root["imageHeight"].asInt();
std::string result = "imagePath: " + imagePath + ", Age: " + std::to_string(imageHeight);
nlohmann库
#include <fstream>
#include <nlohmann/json.hpp>
#include <android/log.h>
void saveJsonToFile(const std::string& jsonPath, const nlohmann::json& jsonObject) {
std::ofstream outputFile(jsonPath);
if (outputFile.is_open()) {
outputFile << jsonObject.dump(4); // 4 spaces for pretty printing
outputFile.close();
__android_log_print(ANDROID_LOG_INFO, "YourAppTag", "JSON file saved successfully.");
} else {
__android_log_print(ANDROID_LOG_ERROR, "YourAppTag", "Failed to open the JSON file for writing.");
}
}
int main() {
// 创建一个JSON对象
nlohmann::json j;
j["name"] = "John Doe";
j["age"] = 30;
// ...添加更多数据...
// 假设我们有权限写入应用的私有目录
std::string jsonPath = "/data/data/your.package.name/files/output.json";
// 保存JSON到文件
saveJsonToFile(jsonPath, j);
return 0;
}