我对下面的一个json解析遇到了一些问题,请求帮忙。这个json是外层和内层一样的,而且据客户说最里面的"friend": "John","mutual": true还会根据"activityType": "addedFriend",来变。想不出来这个json的映射类怎么写。{
  "activityType": "experienceGained",
  "user": "Bert",
  "attributes":
  {
    "XPpoints": 1500,
    "originalActivity":
    {
      "activityType": "addedFriend",
      "user": "Bert",
      "attributes":
      {
        "friend": "John",
        "mutual": true
      }
    }
  }

解决方案 »

  1.   

    利用接口来做Define Interface A, then define class B or class or others according to activityType
    class OutJSON {
      private String activityType;
      private String user;
      private Attributes attributes:
    }class Attributes {
        private A a;
    }
    interface A{}基本就是这个思路
      

  2.   

    有点不太明白,换个方式问吧下面是json数据
    {
      "activities":
      {
        "easfc_club_promoted":
        {
          "attributes":
          {
            "team_id":2,
            "from_league_id":1,
            "to_league_id":2
          }
        }
      }
    }
    怎么创建对应的类
      

  3.   

    public class Activities{
        public Easfc_club_promoted easfc_club_promoted;
        public int team_id;
        public int from_league_id;
        public int to_league_id;
    }public class Easfc_club_promoted {
        public Attributes attributes;
    }
      

  4.   

    自己解决了,不过还要谢谢各位@JsonSerialize
    public class activities
    {    private Map<String, attributes> activities;    /**
         * @return the activities
         */
        public Map<String, attributes> getActivities()
        {
            return activities;
        }    /**
         * @param activities the activities to set
         */
        public void setActivities(Map<String, attributes> activities)
        {
            this.activities = activities;
        }}
    @JsonSerialize
    public class attributes
    {
        private Map<String, Integer> attributes;    /**
         * @return the attributes
         */
        public Map<String, Integer> getAttributes()
        {
            return attributes;
        }    /**
         * @param attributes the attributes to set
         */
        public void setAttributes(Map<String, Integer> attributes)
        {
            this.attributes = attributes;
        }
    }
      

  5.   

      "attributes":
      {
      "friend": "John",
      "mutual": true
      }
    "originalActivity":
      {
      "activityType": "addedFriend",
      "user": "Bert",
      "attributes":
      {
      "friend": "John",
      "mutual": true
      }
    "attributes":
      {
      "XPpoints": 1500,
      "originalActivity":
      {
      "activityType": "addedFriend",
      "user": "Bert",
      "attributes":
      {
      "friend": "John",
      "mutual": true
      }
      }
    {
      "activityType": "experienceGained",
      "user": "Bert",
      "attributes":
      {
      "XPpoints": 1500,
      "originalActivity":
      {
      "activityType": "addedFriend",
      "user": "Bert",
      "attributes":
      {
      "friend": "John",
      "mutual": true
      }
      }
      }这样应该可以了吧?