java-从GSON解析JSON中的通用标记

java-从GSON解析JSON中的通用标记,第1张

概述我有一个包含通用值的JSON.我使用地图尝试过,但无法获得结果.我的问题是通用标签从第二层开始.这是我正在尝试通过gson解析的JSON.{"success":true,"status":200,"events":{"Sep2013":[{"artist_id":1,"created_at&quo

我有一个包含通用值的JSON.我使用地图尝试过,但无法获得结果.我的问题是通用标签从第二层开始.这是我正在尝试通过gson解析的JsON.

{"success": true,"status": 200,"events": {    "Sep 2013": [        {            "artist_ID": 1,            "created_at": "2013-05-18T15:21:00Z",            "duration": 2,            "end_time": "2013-09-19T22:00:00Z",            "event_desc": "",            "event_facebook_link": "",            "event_link": "https://www.smtickets.com/marketing/vIEw/1316",            "feature_small": false,            "featured_status": false,            "ID": 90,

在此JsON标签中,“事件”之后是通用名称,即“ 2013年9月”.

我现在正在尝试的是:

public Event event ;public class Event {    public ArrayList<Map<String, String>> dates;    }

我正在访问它:

obj = gson.fromJson(reader, AllShowsActivityData.class);

谁能告诉我如何安排一班约会.因此,Gson可以序列化它.还是有其他方法可以迭代一级标签,然后我可以像这样声明它

Type fooType = new Typetoken<Foo<bar>>() {}.getType();

gson.toJson(foo,fooType);

解决方法:

您确实可以使用地图,但是使用不正确.请注意,您拥有的是“事件”字段,该字段是一个包含许多对字符串和对象数组的对象:

{ "events": { "Sep 2013": [ {}, {}, ... ], ... } }

要解析您的JsON,您需要一个这样的类结构(以伪代码):

class AllShowsActivityData  Map<String, List<Event>> eventsclass Event  int artist_ID  String created_at //parsing as String to simplify...  int duration  ...

然后您要解析的代码:

AllShowsActivityData obj = gson.fromJson(reader, AllShowsActivityData.class);

最后,如果您要访问的是日期,则将所有日期都包含在其中:

Set<String> dates = obj.getEvents().keySet(); //"Sep 2013", ...

注意:实际上,如果只希望这些日期,则甚至不需要Event类,并且可以只使用Map< String,List< Object>>.事件…

总结

以上是内存溢出为你收集整理的java-从GSON解析JSON中的通用标记全部内容,希望文章能够帮你解决java-从GSON解析JSON中的通用标记所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1074514.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存