Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menggunakan objek java untuk mewakili json kompleks?

Ada objek json yang perlu banyak digunakan, jadi saya ingin merangkumnya menjadi objek,

{tooltip : {
          trigger: 'axis',
          axisPointer: {type: 'cross',},
          formatter: "{b}: {c})"},
xAxis :{
      type : 'category',
      data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
      axisTick: {alignWithLabel: true}},
yAxis :{
      type : 'value'},
series :{
      type:'bar',
      barWidth: '80%',
      data:[10, 52, 200, 334, 390, 330, 220]}}

Idea semasa ialah meletakkan satu lapisan objek dan satu lagi lapisan petua alat, xAxis dan objek siri, tetapi ia benar-benar di luar sasaran. Adakah terdapat amalan yang baik?

给我你的怀抱给我你的怀抱2712 hari yang lalu574

membalas semua(2)saya akan balas

  • 滿天的星座

    滿天的星座2017-05-17 10:10:15

    Walaupun saya tidak begitu memahami masalah anda, agak menjengkelkan untuk menulis beberapa kelas untuk json bagi mewakili struktur json ini... Tetapi ada artifak yang boleh membantu anda menyelesaikan masalah ini dengan mudah, haha ​​​​

    Terdapat artifak dalam IDEA yang dipanggil GsonFormat

    Pemalam ini sangat mudah digunakan untuk memproses json Tidak kira betapa rumitnya json, selagi format json betul, ia akan menjana kelas secara automatik untuk anda, haha ​​​​

    .

    Langkah penggunaan am adalah seperti berikut:

    1. Buat kelas baharu, contohnya, dipanggil Ujian Kelas ini akan menjadi kelas terakhir yang anda mahu gunakan

    1. Kemudian Alt+s untuk membuka kekunci pintasan GsonFormat

    1. Tampal rentetan json yang anda mahu tukar dan klik ok

    4 Sahkan format dan taip selepas penukaran Pada asasnya, lalai adalah OK, hanya klik ok

    1. Penjanaan kelas:

    2. public class Test {
          /**
           * tooltip : {"trigger":"axis","axisPointer":{"type":"cross"},"formatter":"{b}: {c})"}
           * xAxis : {"type":"category","data":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],"axisTick":{"alignWithLabel":true}}
           * yAxis : {"type":"value"}
           * series : {"type":"bar","barWidth":"80%","data":[10,52,200,334,390,330,220]}
           */
      
          private TooltipBean tooltip;
          private XAxisBean xAxis;
          private YAxisBean yAxis;
          private SeriesBean series;
      
          public TooltipBean getTooltip() {
              return tooltip;
          }
      
          public void setTooltip(TooltipBean tooltip) {
              this.tooltip = tooltip;
          }
      
          public XAxisBean getXAxis() {
              return xAxis;
          }
      
          public void setXAxis(XAxisBean xAxis) {
              this.xAxis = xAxis;
          }
      
          public YAxisBean getYAxis() {
              return yAxis;
          }
      
          public void setYAxis(YAxisBean yAxis) {
              this.yAxis = yAxis;
          }
      
          public SeriesBean getSeries() {
              return series;
          }
      
          public void setSeries(SeriesBean series) {
              this.series = series;
          }
      
          public static class TooltipBean {
              /**
               * trigger : axis
               * axisPointer : {"type":"cross"}
               * formatter : {b}: {c})
               */
      
              private String trigger;
              private AxisPointerBean axisPointer;
              private String formatter;
      
              public String getTrigger() {
                  return trigger;
              }
      
              public void setTrigger(String trigger) {
                  this.trigger = trigger;
              }
      
              public AxisPointerBean getAxisPointer() {
                  return axisPointer;
              }
      
              public void setAxisPointer(AxisPointerBean axisPointer) {
                  this.axisPointer = axisPointer;
              }
      
              public String getFormatter() {
                  return formatter;
              }
      
              public void setFormatter(String formatter) {
                  this.formatter = formatter;
              }
      
              public static class AxisPointerBean {
                  /**
                   * type : cross
                   */
      
                  private String type;
      
                  public String getType() {
                      return type;
                  }
      
                  public void setType(String type) {
                      this.type = type;
                  }
              }
          }
      
          public static class XAxisBean {
              /**
               * type : category
               * data : ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]
               * axisTick : {"alignWithLabel":true}
               */
      
              private String type;
              private AxisTickBean axisTick;
              private List<String> data;
      
              public String getType() {
                  return type;
              }
      
              public void setType(String type) {
                  this.type = type;
              }
      
              public AxisTickBean getAxisTick() {
                  return axisTick;
              }
      
              public void setAxisTick(AxisTickBean axisTick) {
                  this.axisTick = axisTick;
              }
      
              public List<String> getData() {
                  return data;
              }
      
              public void setData(List<String> data) {
                  this.data = data;
              }
      
              public static class AxisTickBean {
                  /**
                   * alignWithLabel : true
                   */
      
                  private boolean alignWithLabel;
      
                  public boolean isAlignWithLabel() {
                      return alignWithLabel;
                  }
      
                  public void setAlignWithLabel(boolean alignWithLabel) {
                      this.alignWithLabel = alignWithLabel;
                  }
              }
          }
      
          public static class YAxisBean {
              /**
               * type : value
               */
      
              private String type;
      
              public String getType() {
                  return type;
              }
      
              public void setType(String type) {
                  this.type = type;
              }
          }
      
          public static class SeriesBean {
              /**
               * type : bar
               * barWidth : 80%
               * data : [10,52,200,334,390,330,220]
               */
      
              private String type;
              private String barWidth;
              private List<Integer> data;
      
              public String getType() {
                  return type;
              }
      
              public void setType(String type) {
                  this.type = type;
              }
      
              public String getBarWidth() {
                  return barWidth;
              }
      
              public void setBarWidth(String barWidth) {
                  this.barWidth = barWidth;
              }
      
              public List<Integer> getData() {
                  return data;
              }
      
              public void setData(List<Integer> data) {
                  this.data = data;
              }
          }
      }

      balas
      0
  • 巴扎黑

    巴扎黑2017-05-17 10:10:15

    import java.util.HashMap;
    import java.util.Map;
    
    import com.alibaba.fastjson.JSON;
    
    public class MM {
        class Tooltip {
            private String trigger;
            private Map<String, String> axisPointer;
            private String formatter;
            public String getTrigger() {
                return trigger;
            }
            public void setTrigger(String trigger) {
                this.trigger = trigger;
            }
            public Map<String, String> getAxisPointer() {
                return axisPointer;
            }
            public void setAxisPointer(Map<String, String> axisPointer) {
                this.axisPointer = axisPointer;
            }
            public String getFormatter() {
                return formatter;
            }
            public void setFormatter(String formatter) {
                this.formatter = formatter;
            }
        }
    
        public static void main(String[] args) {
            MM mm = new MM();
            Tooltip tooltip = mm.new Tooltip();
            tooltip.setTrigger("axis");
            tooltip.setAxisPointer(new HashMap<String, String>(){{
                this.put("type", "cross");
            }});
            tooltip.setFormatter("{b}: {c})");
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("tooltip", tooltip);
            
            System.out.println(JSON.toJSONString(map));
        }
    
    }

    Output:

    {"tooltip":{"axisPointer":{"type":"cross"},"formatter":"{b}: {c})","trigger":"axis"}}

    balas
    0
  • Batalbalas