簡體   English   中英

GSON將Java對象添加到json數組

[英]GSON Adding java object to json array

我有json {"name": "John", "tests":["apple"]} 在我的Java代碼中,我想通過gson更新此json-將字符串字段添加到json數組並保存到文件中以獲取此json- {"name": "John", "tests":["apple", "pinapple"]} 那么有什么辦法嗎? 我的json的Java類如下所示:

public class Test{
    private String name;
    private List<String> tests;

    // Getters/Setters
}

像這樣在Java中讀取json:

Gson gson = new Gson();

try (Reader reader = new FileReader("D:\\file.json")) {
    Test js = gson.fromJson(reader, Test.class);
    System.out.println(js.getName());   
} catch (IOException e) {
     e.printStackTrace();
}

這樣做我的新json文件為空:

Gson gson = new Gson();
try (Reader reader = new FileReader("D:\\file.json")) {
        Test test = gson.fromJson(reader, Test.class);
        System.out.println(test.getName());
        test.getTests().add("pinapple");
        String newJson = gson.toJson(test);
        System.out.println(newJson);
        gson.toJson(test, new FileWriter("D:\\file.json"));
    } catch (IOException e) {
        e.printStackTrace();
    }
Test test = gson.fromJson(reader, Test.class);

擁有Test對象后,請執行以下操作:

test.getTests().add("pineapple");

現在,您的陣列中有pineapple了。 您可以創建JSON字符串:

String newJson = gson.toJson(test);
System.out.println(newJson);

或寫回同一個文件

gson.toJson(test, new FileWriter("D:\\file.json"));

編輯 :整個代碼

String fileName = "D:\\file.json";
Gson gson = new Gson();
Test test = null;
try (Reader reader = new FileReader(fileName)) {
    test = gson.fromJson(reader, Test.class);
} catch (IOException e) {
    e.printStackTrace();
}

test.getTests().add("pineapple");
String newJson = gson.toJson(test);
System.out.println(newJson);

try (Writer writer = new FileWriter(fileName)) {
    gson.toJson(test, writer);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM