java使用GSON尽可能简单地解析JSON字符串
使用GSON,如何从多维Json字符串返回单个键
以下是多维Json字符串:
{"statusCode":0,"statusDescription":"OK","data":{"user":{"id":xxx,"company_id":xxx,"account_type":"5","enable_locations":true,"intuit_user_id":null,"nick_name":"xxx","is_owner":"1","enabled":"1"},"session_token":"xxx"}}
我想返回“session_token”键值
我正在尝试:
class app {
static class Response {
String session_token;
}
public void getSessionToken() {
String x = {"statusCode":0,"statusDescription":"OK","data":{"user":{"id":xxx,"company_id":xxx,"account_type":"5","enable_locations":true,"intuit_user_id":null,"nick_name":"xxx","is_owner":"1","enabled":"1"},"session_token":"xxx"}}
Response r = new Gson().fromJson(x, Response.class);
System.out.println(r.session_token);
}
}
但是有了这个,我的r.session_令牌返回null
# 1 楼答案
您需要直接使用Gson的
JsonParser
类,并从解析树中提取数据:也就是说,这是否会在以下方面为您节省实时时间,这是有争议的:
(根据以下评论编辑):
Gson会默默地忽略JSON中的数据比您感兴趣的要多这一事实,稍后您可能会对它感兴趣,在这种情况下,向
Response
类添加字段是很简单的由于问题更改而编辑:
你有一个JSON对象。它包含一个值为对象的字段
data
。在这个对象的内部,有一个你感兴趣的字段session_token
要么通过解析树导航到该字段,要么创建所有映射到的Java类。Java类将类似于(至少):