Bearbeiten Ich habe die Detailklasse hinzugefügt und den doppelten Schlüssel behoben. Die Daten sind tatsächlich Zeichenfolgen.JSON-Datei analysiert, aber ich erhalte immer noch die Ausnahme: Erwartete BEGIN_OBJECT, aber war STRING
Verwenden von Gson 2.8 und Eclipse.
Ich habe es geschafft, die JSON-Datei analysiert und die Werte gespeichert und gedruckt, , aber ich bekomme immer noch die Ausnahme. (BEGIN_OBJECT erwartet, aber war STRING in Zeile 1 Spalte 2)
ich andere Lösungen geprüft habe, mag ein Objekt setzen, wo erwartet, aber es wirft nur eine andere Ausnahme. z (begin_array wird erwartet)
Json Datei
[{"numValue1":"1",
"StringValue1":"EI",
"StringValue2":"A",
"enumValue1":"TYPE_A",
"numValue2":"3221",
"StringValue3":"DDEF",
"StringValue4":"Mexicof",
"numValue3":"8",
"stringDate1":"27/05/2017 11:55",
"stringDate2":"29/09/2016 11:55",
"stringDate3":"27/05/2017 11:57"}]
-Code zum Parsen der Datei verwendet
Gson gson = new GsonBuilder().setDateFormat("dd/MM/yyyy HH:mm").create();
Details[] feedRecord = gson.fromJson(data.trim(), Details[].class);
Details der Klasse
public class Details implements Serializable {
enum Type {
TYPE_D, TYPE_A
};
@SerializedName("numValue1")
private Integer num1;
@SerializedName("StringValue1")
private String string1;
@SerializedName("StringValue2")
private String string2;
@SerializedName("numValue2")
private String num2;
@SerializedName("StringValue3")
private String string3;
@SerializedName("StringValue4")
private String string3;
@SerializedName("numValue3")
private String num3;
@SerializedName("StringDate1")
private String date1;
@SerializedName("StringDate2")
private String date2;
@SerializedName("StringDate3")
private String date3;
@SerializedName("enumType1")
private Type enumType;
}
Exception
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $[0]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:852)
at com.google.gson.Gson.fromJson(Gson.java:801)
at com.google.gson.Gson.fromJson(Gson.java:773)
Wie sicher sind Sie, dass beginnt die JSON Sie hier gezeigt habe, ist * genau * der Inhalt von 'data'? –
Nun, Sie haben einen doppelten Schlüssel, ich weiß nicht, ob dies dazu führt, dass Gson fehlschlägt ... – hfhc2
Mögliches Duplikat von ["Expected BEGIN \ _OBJECT aber war STRING in Zeile 1 Spalte 1"] (https: // stackoverflow .com/questions/28418662/expected-begin-object-aber-was-string-at-line-1-column-1) – bhspencer