在JSON响应中获取对象

时间:2014-12-14 05:58:41

标签: java json pojo

我有一个JSON响应,如下所示:

String resp = "{"name":"Renold","age":"16"}"

我有一个POJO名为" Person"其中包含属性' Name'和'年龄'如何从JSON响应中提取属性并将它们分配给POJO?我已经尝试过GSON并且对象被错误地分配为" Name = name"和"年龄=年龄"而不是实际的反应。

还有其他什么建议,好小伙子? :)

编辑:这是我与GSON一起使用的

Gson gson = new Gson(); 
final Person p= gson.fromJson(response, Person.class);

这让我失望:

  

p.Name = name;

     

年龄=年龄;

而不是p.Name = Renold。

5 个答案:

答案 0 :(得分:1)

您可以使用Genson尝试此操作:

String resp = "{"name":"Renold","age":"16"}"
Genson genson = new Genson();
Person person = genson.deserialize(resp, Person.class);

答案 1 :(得分:0)

请使用org.json尝试使用JObject类进行序列化。 e.g

JSONObject jsonObj = new JSONObject("{\"name\":\"Renold\",\"age\":\"16"\"}");

然后获取属性:

jsonObj.get("name");

答案 2 :(得分:0)

如果你正在使用maven,你可以包括Jackson依赖。这将自动映射事物。

答案 3 :(得分:0)

我猜你必须使用@SerializedName将Name映射到名称

检查此pojo parse gson with invalid java names

在你的Pojo中,你必须这样注释。

  @SerializedName("name")
  private final Name;

答案 4 :(得分:0)

我使用了您描述的相同场景,并发现您的代码没有问题,除了您使用的字符串表示。我已将代码放在pastebin。此示例项目应解决您的json格式问题。

您的回复中的字符串应为:

String response = "{\"name\":\"Renold\",\"age\":16}"