GSON解析器类JSON响应 - Android电子 [英] Gson parser class for Json response - Android
问题描述
我已经得到了回应像下面,
i've got response like below,
有时语言标记配备了数组值
Sometime the language tag come with array value
{
"name": "Tony",
"id":"123",
"language":["en","fr" ]
}
对于一些用户的语言值配备字符串值。
for some user the language value come with string value.
{
"name": "Max",
"id":"124",
"language":"en"
}
如何创建解析器类使用GSON解析JSON响应?
How to create parser class to parse the json response using GSON?
推荐答案
这可能不是直接的答案,但你可以的处理/实现此使用的杰克逊分析器没有任何尝试捕捉
。通过设置 objectmapper 属性。
This might not be direct answer, but you can handle/achieve this using Jackson Parser without any try catch
. By setting objectmapper properties.
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
很少有其他对象映射器,你应该consiter设置,
Few other object mappers you should consiter setting,
objectMapper.setSerializationInclusion(Include.NON_NULL);
objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
GetDetails.java
package com.domain.project;
import java.util.List;
public class GetDetails{
private String id;
private List<String> language;
private String name;
public String getId(){
return this.id;
}
public void setId(String id){
this.id = id;
}
public List<String> getLanguage(){
return this.language;
}
public void setLanguage(List<String> language){
this.language = language;
}
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
}
通作解析响应。
GetDetails mDetails = objectMapper.readValue(响应,GetDetails.class)
要获取值。
String mName = mDetails.getName(); // Name
String id = mDetails.getId(); // ID
// Language
int mLangSize = mDetails.getLanguage().size();
for (int i = 0; i < mLangSize; i++) {
System.out.println("\nLang : " + mDetails.getLanguage().get(i).toString());
}
以上都接受的阵列和放大器;字符串中的语言的关键。
{
"name": "Tony",
"id":"123",
"language":["en","fr" ]
}
{
"name": "Tony",
"id":"123",
"language":"en"
}
最后一个小技巧,使用 http://jsongen.byingtondesign.com/ 生成POJO类,当有内部进行一些修改数组的数组,你可以在一瞬间你POJO类。
Finally a small tip, Use http://jsongen.byingtondesign.com/ to generate pojo classes, when there is an array inside array with few modifications, you can get all you pojo classes in a flash.
这篇关于GSON解析器类JSON响应 - Android电子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!