使用GsonConverterFactory的Retrofit 2.0对于名称中包含非英文字母的字段返回null

时间:2015-12-17 11:49:07

标签: android json gson retrofit

我有一些json,例如:

{
    "id": 12,
    "title": "Title",
    "photo": [
        "image.png"
    ],
    "options": {
        "Поле": "150"
    }
}

我创建用于解析的模型类:

public class Model implements Serializable {

public int id;
public String title;
public String[] photo;
@SerializedName("option")
public Options option;

public Model(int id, String title, String[] photo, Options option) {
    this.id = id;
    this.title = title;
    this.photo = photo;
    this.option = option;
}

public class Options implements Serializable {

    @SerializedName("Поле")
    public String pole;

    public Options(String pole) {
        this.pole = pole;
    }
}
}

但遗憾的是我的Model.Option.pole中有空。

我认为,问题在于编码。我对吗? 我该如何解决这个问题?

P.S。:在示例中 - 字段的西里尔字母

1 个答案:

答案 0 :(得分:1)

根据您的json,我认为问题@SerializedName("option")应为@SerializedName("options")(请注意复数形式 - 选项 s

注释SerializedName告诉gson它应该用什么来序列化和反序列化json中的属性键。您的json中有options,但您告诉gson序列化和反序列化option