我之前在REST API中有过JSON响应,如下所示,
实施例,
{" ID":" 1234"}
我创建了一个POJO类来设置如下。
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("id")
@Expose
private String id;
/**
*
* @return
* The id
*/
public String getId() {
return id;
}
/**
*
* @param id
* The id
*/
public void setId(String id) {
this.id = id;
}
}
我正在使用GSON解析,如下所示
Example response = new Gson().fromJson(jsonResponse, Example .class);
现在,响应更改为
{" Id":" 1234"}
由于初始大写字母,我的整个解析返回null。
我尝试了很多东西来解决它,但我无法得到任何解决方案。我只有像
这样的建议是否有任何解决方案GSON不会依赖大写字母或小写字母?
答案 0 :(得分:2)
我认为您可以在Gson Builder中使用FieldNamingPolicy,如下所示:
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create();
我认为在您的情况下,您需要使用LOWER_CASE_WITH_UNDERSCORES或LOWER_CASE_WITH_DASHES,根据您要使用的分隔符。
From the docs如果您设置此标记,它会将驼峰式表单转换为小写字段名称。
编辑:
SerializedName注释将覆盖任何字段命名策略,因此您需要小心它 - > source