问题描述
我试图使用gson解析json数据。当我尝试使用GSON解析它时,总是会收到格式错误的JSON异常
com.google.gson.JsonSyntaxException:
com.google.gson.stream.MalformedJsonException: Expected ':' at line 1 column 8 path $.Meta
at com.google.gson.Gson.fromJson(Gson.java:947)
at com.google.gson.Gson.fromJson(Gson.java:897)
at com.google.gson.Gson.fromJson(Gson.java:846)
at com.google.gson.Gson.fromJson(Gson.java:817)
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected ':' at line 1 column 8 path $.Meta
at com.google.gson.Gson.fromJson(Gson.java:947)
at com.google.gson.Gson.fromJson(Gson.java:897)
at com.google.gson.Gson.fromJson(Gson.java:846)
at com.google.gson.Gson.fromJson(Gson.java:817)
以下是原始回复的摘要:
{
"Meta Data": {
"1. Information": "Intraday (5min) open,high,low,close prices and volume","2. Symbol": "IBM","3. Last Refreshed": "2020-08-28 17:00:00","4. Interval": "5min","5. Output Size": "Compact","6. Time Zone": "US/Eastern"
},"Time Series (5min)": {
"2020-08-28 17:00:00": {
"1. open": "125.3000","2. high": "125.3000","3. low": "125.3000","4. close": "125.3000","5. volume": "703"
},"2020-08-28 16:55:00": {
"1. open": "125.3500","2. high": "125.3500","5. volume": "672"
},.....
.....
.....
}
}
尽管我可以在没有gson的情况下解析json,但我只是想了解我在这里做错了什么。
这是崩溃所在的行:
TimeSeriesStocks tSeries = new Gson().fromJson(stringResponse,TimeSeriesStocks.class);
其中
stringResponse = response.body().toString()
response.body()是我从api获得的响应。我可以看到响应很好。
这是TimeSeriesStocks
类:
public class TimeSeriesStocks {
@SerializedName("Meta Data")
public LinkedTreeMap<String,LinkedTreeMap<String,String>> metaData;
@SerializedName("Time Series (5min)")
public LinkedTreeMap<String,String>> timeSeriesMap;
}
我尝试将LinkedTreeMap添加为类型令牌,但出现了相同的异常。我也尝试使用普通的自定义对象,但是response.body()曾引发错误,指出服务器正在发送LinkedTreeMap作为响应。尽管问题看上去很简单,但我只是想知道我要去哪里。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)