2017-04-23 10 views
0

mycodeに新しい要素を追加します。私はこれを書いて何の問題もない:は、ファイル

[{"name":"a"},{"name":"b"}] 

をしかし、私は新しい「アイテム」を追加するためにそれを読みしようとすると、私はエラーが発生しています。 私の考えは、ボタンをクリックすると新しいアイテムを追加することです。 問題が何であり、どうすればこの問題を解決できるのか分かりません。

Items.java

class Items implements Serializable { 
    @SerializedName("name") 
    @Expose 
    private String name; 

public String getName() { return name;} 

public void setName(String name) { 
    this.name = name; 
} 

} 

EDIT はエラーがこれです:

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException: 期待BEGIN_OBJECTが、1行目でBEGIN_ARRAYました列2のパス$

+1

編集perfect-私のためにあなたの質問に働くGSONのPARSER

を使用しているが、ほとんどそれからだろうとこの行は、項目oldItems = new Gson()。fromJson(json、Items.class); 'JSONを項目として逆シリアル化していますが、配列(リスト)の場合は – Yazan

+0

ファイルコンテンツの1行または2行はどのように見えるのですか?ファイルの各行に 'Item'が含まれていますか? – developer

+0

ええ、すべての行に1つの項目が含まれています –

答えて

1
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ 

エラーを追加する

String json = "[{\"name\":\"a\"},{\"name\":\"b\"}]"; 

     List<Items> writenItems = new Gson() 
       .fromJson(json, new TypeToken<List<Items>>(){}.getType()); 
       writenItems 
       .forEach($-> 
       System.out.println("name: " + $.getName())); 
+0

私はそのポストを読むが、それはまだ動作しません.. あなたはより具体的になることができますか?私は –

+0

あなたはgsonの解析と呼ばれるコードを私に見せることができますか?あなたが書こうとしている行の例外がありますか? – strash

+0

エラーはここにあります: アイテムoldItems = new Gson()。fromJson(json、Items.class); 私は何を表示すべきですか?私は混乱している –

0

jsonをファイルに書き込むときに、この形式で記述できますか?

[{"name": "a"}、{"name": "b"}]、つまり名前キーを囲む二重引用符で囲みます。

この問題は解決するはずです。

おかげ

+0

私は間違っていました.. –

+0

これは無効なJSON形式:-) –