如何将JSON对象转换回' Person '对象java



我想将JSON对象转换回Person对象java,但我得到以下错误java.lang. illegalstateexception:预期的BEGIN_OBJECT,但在路径$

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;
}

示例中的jsonObject代表Person,因此您不必迭代jsonObject.entrySet(),您必须使用jsonObject本身。

Person person = gson.fromJson(jsonObject, Person.class);

最新更新