【发布时间】:2016-08-16 11:33:51
【问题描述】:
在 java web 应用程序中,我想用服务器接收到的数据更新 json 文件。 Web Pages\json\cards.json 中已经存在 json 文件:
[
{
"name": "Dhruvam Gupta",
"job_title":"Android Developer",
"email":"dhruvamprashant@gmail.com",
"phone":"9839262655"
}
]
首先我从cards.json 读取JsonArray如下,这是成功完成的,因为 System.out.println(array) 给出前面和附加的数据:
[
{"name":"Dhruvam Gupta","job_title":"Android Developer","email":"dhruvamprashant@gmail.com","phone":"9839262655"},
{"email":"gabor.orosz@me.com","phone":"+36 30 610 6976","name":"Orosz Gábor","job_title":"Android Developer"}]
我已将数据读取为:
ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/json/cards.json");
InputStreamReader isr = new InputStreamReader(is);
JsonReader jsr = new JsonReader(isr);
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(jsr);
JsonArray array = element.getAsJsonArray();
JsonElement ele = parser.parse(card);
array.add(ele);
System.out.println(array);
但是当我尝试将 array 写入 json 文件时,会抛出异常:\json\cards.json(系统找不到指定的路径) .
try {
FileOutputStream fw = new FileOutputStream(new File("/json/cards.json"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fw));
bw.write(array.getAsString());
bw.close();
fw.close();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
所以我想知道如何成功更新数据。 我认为问题在于从 servlet 打开 OutputStream 到cards.json 文件。
请帮我解决问题。
【问题讨论】: