我想將 JSON 物件轉換回Person物件 java,但出現以下錯誤 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at path $
示例 Json 檔案:
{
"type":"set",
"key":"person",
"value":{
"name":"Elon Musk",
"car":{
"model":"Tesla Roadster",
"year":"2018"
},
"rocket":{
"name":"Falcon 9",
"launches":"87"
}
}
}
JsonObject jsonObject = new JsonParser().parse(input.readUTF()).getAsJsonObject();
Gson gson = new Gson();
for (Map.Entry<String, JsonElement> entry : jsonObject.entrySet()) {
Person person = gson.fromJson(entry.getValue(), Person.class);
System.out.println(jsonFile);
}
@Getter
@Setter
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Person {
String type;
String key;
Value value;
}
@Data
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Getter
@ToString
public class Value {
String name;
Map<String, String> car;
Map<String, String> rocket;
}
uj5u.com熱心網友回復:
示例中的jsonObject表示 a Person,因此您不必迭代而jsonObject.entrySet()必須使用它jsonObject本身。
Person person = gson.fromJson(jsonObject, Person.class);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/535393.html
標籤:爪哇JSONGSON
