当JSON键有短划线

时间:2016-06-09 14:40:50

标签: java android json gson

JSON字符串是:

{
    "translation": ["some words"],
    "basic": {
        "us-phonetic": "'flæbɚɡæstɪd",
        "phonetic": "'flæbɚɡæstɪd",
        "uk-phonetic": "'flæbəga:stid",
        "explains": ["v. some words",
            "adj. some words"
        ]
    }
}

但是Java中没有"-"的值。那么如何获得"us-phonetic"

1 个答案:

答案 0 :(得分:9)

创建一个POJO课程来代表您的JSON并使用SerializedName注释装饰您的字段。

gson字段的名称和java字段的名称不同时,

@SerializedName("json_name")使用JSON

出于示例目的,我冒昧地简化了JSON

{
  "us-phonetic": "'flæbɚɡæstɪd",
  "phonetic": "'flæbɚɡæstɪd",
  "uk-phonetic": "'flæbəga:stid"
}

使用以下类反序列化JSON:

public class Basic {
  @SerializedName("us-phonetic")
  private String usPhonetic;

  @SerializedName("phonetic")
  private String phonetic;

  @SerializedName("uk-phonetic")
  private String ukPhonetic;
}

要反序列化:

Basic b = gson.fromJson(json, Basic.class);