【发布时间】:2020-10-05 18:03:36
【问题描述】:
我想创建一个这样的 JSON 数组结构或将一个对象附加到结构中
{ "user" : [
{"name" : "user1", "email": "user1@gmail"},
{"name": "user2", "email": "user2@gmail"}
]
}
我正在使用 GSON 将其写入文件
public void appendToObject(File jsonFile, String key, String value) {
Objects.requireNonNull(jsonFile);
Objects.requireNonNull(key);
Objects.requireNonNull(value);
if (jsonFile.isDirectory()) {
throw new IllegalArgumentException("File can not be a directory!");
}
try {
JsonObject node = readOrCreateNew(jsonFile);
JsonArray userArray = new JsonArray();
userArray.add(user(key,value));
node.add("user", userArray);
FileWriter writer = new FileWriter(jsonFile)
gson.toJson(node, writer);
}catch (Exception e)
{
Log.d("display1", "appendToObject: error"+e.getLocalizedMessage());
e.printStackTrace();
}
}
private JsonObject user(String user, String password){
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", user);
jsonObject.addProperty("password", password);
return jsonObject;
}
private JsonObject readOrCreateNew(File jsonFile) throws IOException {
if (jsonFile.exists() && jsonFile.length() > 0) {
try (BufferedReader reader = new BufferedReader(new FileReader(jsonFile))) {
return gson.fromJson(reader, JsonObject.class);
}
}
return new JsonObject();
}
这是集成了建议以及读写 JSON 文件函数的代码
但我得到"user1":"{\"values\":[null,\"user13\",\"useremail13\"]}"}
如何构造它以获得所需的输出
【问题讨论】: