我有一个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。
答案 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}"