Retrofit 2.0 with GsonConverterFactory return null for fields with non-english letters in name

Retrofit 2.0 with GsonConverterFactory return null for fields with non-english letters in name

我有一些json,例如:

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

我创建模型 class 用于解析:

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 中有 null。

我想,问题出在编码上。我对吗? 我该如何解决这个问题?

P.S.: 在示例中 - 字段的西里尔名称

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

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