我需要一些帮助,将新数组附加到现有文件中。我有一个像这样的JSON文件:
[
{
"name": "any",
"address": {
"street": "xxxx",
"number": 1
},
"email": "teste@gmail.com"
}
]
我想插入新数组,所以我的文件将是这样的:
[
{
"name": "any",
"address": {
"street": "xxxx",
"number": 1
},
"email": "test@gmail.com"
},
{
"name": "any2",
"address": {
"street": "yyyyy",
"number": 2
},
"email": "test2@gmail.com"
}
]
这是我的代码:
Gson gson = new GsonBuilder().setPrettyPrinting().create();
ArrayList<Person> ps = new ArrayList<Person>();
// .... reading entries...
ps.add(new Person(name, address, email));
String JsonPerson = gson.toJson(ps);
File f = new File("jsonfile");
if (f.exists() && !f.isDirectory()) {
JsonReader jsonfile = new JsonReader(new FileReader("jsonfile"));
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(jsonfile);
//here goes the new entry?
try (FileWriter file = new FileWriter("pessoas.json")) {
file.write(JsonPessoa);
file.close();
} catch (Exception e) {
e.printStackTrace();
}
那么,最好的方法是什么? 提前谢谢。
答案 0 :(得分:1)
public class Contact {
@SerializedName("address")
private Address mAddress;
@SerializedName("email")
private String mEmail;
@SerializedName("name")
private String mName;
// getters and setters...
}
public class Address {
@SerializedName("number")
private Long mNumber;
@SerializedName("street")
private String mStreet;
// getters and setters...
}
阅读JSON并添加新联系人并将其转换回JSON,它也可以无缝地用于其他方式。同样,您可以使用此方法来解决许多用例。在
之后,通过从文件中读取或使用类似的方式传递json数组字符串Gson gson = new Gson();
List<Contact> contacts = gson.fromJson("JSON STRING", new TypeToken<List<Contact>>() {}.getType());
Contact newContact = new Contact();
// set properties
contacts.add(newContact);
String json = gson.toJson(contacts);
有像this one这样的工具可以从JSON创建pojos。