gpt4 book ai didi

java - Android - 如何正确编写 JSONObject 字符串

转载 作者:行者123 更新时间:2023-12-01 19:27:27 25 4
gpt4 key购买 nike

我正在尝试读取/写入 json 文件。但是第一次写入后,json 被转义,再次读取它不起作用。我有以下 json 结构,但具有更多值(value):

{
"events": {
"XdQKixgtraz17eDHb6OW": {
"department": "Côte-d'Or",
"objectName": "Dijon",
"uid": "PMhzfzWlm6vN2yL1kY2i"
}
}
}

这是我构建 json 字符串的方法:

JSONObject eventsJsonObject = new JSONObject();
JSONObject eventsData = new JSONObject();

for(Event event: eventsList){
String eventString = gson.toJson(event);
eventsData.put(event.getUid(), eventString);
}

eventsJsonObject.put("events", eventsData);

writeFile(filename, eventsJsonObject.toString());

我最终得到一个看起来像这样的字符串,但我无法再次读取它..:

{"events":{"XdQKixgtraz17eDHb6OW":"{\"department\":\"Côte-d'Or\",\"objectName\":\"Dijon\",\"uid\":\"PMhzfzWlm6vN2yL1kY2i\"}"}}

正如您所看到的,第三个分号之前有一个不应该出现的引号。我怎样才能正确构建我的 json 字符串?

感谢您的宝贵时间。

编辑:错误来 self 构建 json 字符串以写入文件的位置,因此我重写了我的问题。

最佳答案

试试这个代码

public static JSONObject readJSONFile (String path, Context context) {
String jsonStr = null;
try {
InputStream is = getActivity().getAssets().open(path);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
jsonStr = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
JSONObject jsonObj = new JSONObject((jsonStr ));
return jsonObj;
}

关于java - Android - 如何正确编写 JSONObject 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59296305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com