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"

最佳答案

创建一个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);

07-27 13:39