我想从这个json响应中获取键"FullName"
的值:
{
"Succeeded": true,
"DebugError": "",
"SystemUser": {
"ID": 94,
"FullName": "John Smith",
"Email": "abcd@gmail.com",
"PhoneNumber": "0000000000",
"Country": "USA"
}
}
在onResponse
方法中我做了这个:
// code..
@Override
public void onResponse(JSONObject response) {
Gson gson = new Gson();
JsonReader reader = new JsonReader(new StringReader(response.getJSONObject("SystemUser").get("FullName").toString()));
reader.setLenient(true);
String name = gson.fromJson(reader, String.class);
Log.i( " name: ", name + "");
// I tried to use getString("FullName") but shows the same result.
}
// code..
Logcat中的值=>的 name: John
为什么不打印全名(John Smith)??
答案 0 :(得分:1)
好像你的GSON实现是多余的。只需使用
response.getJSONObject("SystemUser").getString("FullName")
答案 1 :(得分:0)
不是以这种方式进行,而是可以采用更好的方法。大多数应用程序都有复杂的json结构,但这种方法并不可行。
通过将样本json粘贴到jsonschema2pojo来创建模型类。现在选择目标语言:Java
,注释样式:Gson
下载或复制粘贴生成的模型类并使用以下内容(假设您的班级名称为UserDetails
)。
UserDetails userDetails = gson.fromJson(response.toString(), UserDetails.class);
现在您已使用所有值填充模型类。检索你想要的。
注意: 变量名和内部类名应与JSON结构完全相同。更好地使用注释。否则模型类将无法正确填充