问题描述
我有previously在REST API像下面JSON响应,
I have previously JSON response in REST API like below,
例如:
{ID:1234}
我创建了一个POJO类来设置如下图所示。
I created an POJO class to set it like below.
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解析如下图所示。
And I am parsing with GSON like below
Example response = new Gson().fromJson(jsonResponse, Example .class);
现在,响应更改为
{ID:1234}
和我的整个解析将返回我空因首字母大写。
And my whole parsing is returning me null due to initial capital letter.
我试过很多事情要解决它,但我不能得到任何的解决方案。我有一个像
I tried many things to solve it out but I can't get any solution for it. I have only suggestions like
- 您应该初始资本变更@SerializedName的名称(但我有成千上万的对象)
是否有GSON不会依赖于资本或关键的小写任何解决方案?
Is there any solution that GSON won't depend upon capitalization or lower case of key?
推荐答案
我认为你可以使用<一个href=\"http://google-gson.google$c$c.com/svn/trunk/gson/docs/javadocs/com/google/gson/FieldNamingPolicy.html\"相对=nofollow> FieldNamingPolicy在GSON构建器是这样的:
I think you can use FieldNamingPolicy in your Gson Builder like this :
Gson gson = new GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create();
我觉得你的情况,你将需要使用基于您要使用的分离器LOWER_CASE_WITH_UNDERSCORES或LOWER_CASE_WITH_DASHES。
I think in your case you will need to use LOWER_CASE_WITH_UNDERSCORES or LOWER_CASE_WITH_DASHES based which separator you want to use.
<一个href=\"http://google-gson.google$c$c.com/svn/trunk/gson/docs/javadocs/com/google/gson/FieldNamingPolicy.html\"相对=nofollow>从文档如果你设置该标志将骆驼套管形式转换为小写的字段名。
From the docs if you set this flag it will convert camel cased form to a lower case field name.
编辑:结果
该SerializedName注解将覆盖任何字段命名策略,所以你必须要小心它 - > <一个href=\"http://google-gson.google$c$c.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/annotations/SerializedName.html\"相对=nofollow>来源
这篇关于在GSON解析JSON的初始资本主要问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!