新浪微博返回的这种复杂的json数据应该怎么解析?
新浪微博获取用户微博的接口说明 链接描述
根据接口,返回的是复杂的json数据,我截取了获取到的数据中的一段,尝试用gson进行解析,结果发现解析报错。
下边是截取的部分json文件的内容,请教大家:
user这个key对应的java类型应该是什么呢?我试了List和ArryList都不对,不知道他对应的类型是什么
{
"statuses": [
{
"created_at": "Fri Dec 02 17:05:40 +0800 2016",
"id": 4048283825629844,
"mid": "4048283825629844",
"idstr": "4048283825629844",
"text": "前卫 //@主治医湿:造型有点害怕 //@冷知君:原谅我不懂时尚 //@城南邮局:最后是刘梓晨吧 //@话提:走远了……",
"user": {
"id": 5680719858,
"idstr": "5680719858",
"class": 1,
"screen_name": "综艺博主",
"name": "综艺博主",
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
没用过这个库,不过看错误信息,问题应该在这句:
jsonstring abc = gson.fromJson(jsonfile,jsonstring.class);
提示java.lang.IllegalStateException: Expected a string but was BEGIN_ARRAY。
你确定gson.fromJson(jsonfile,jsonstring.class)返回的类型是jsonstring吗?
对应的是user对象。。。
{}中间的是对象(或者Map),[]中间的才是数据(或者List)
它对应的应该是java里面的字典类型,因为他是一个键值对,你可以用hashtable等数据结构来存储
很明显啊,就是一个普通的对象。
而且根据json创建对应的类,应该用插件,直接避免了你这种问题。