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);