怎麼用java物件表示複雜的json?
给我你的怀抱
给我你的怀抱 2017-05-17 10:08:15
0
2
547

有種json物件要大量使用,所以想封裝成對象,

{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]}}

現在的想法是一層對象再套一層tooltip,xAxis,series對象,可是完全偏離目標了,本來就只是一個輔助對象。有沒有什麼好的做法?

给我你的怀抱
给我你的怀抱

全部回覆 (2)
滿天的星座

雖然並沒有太理解你的問題,不過針對json去寫一些類表示這個json的結構,是有點煩...不過有個神器可以幫你簡單解決這個問題,哈哈

IDEA裡有個神器叫GsonFormat

這個插件處理json十分好用,不管json有多複雜,只要json格式正確,自動幫你生成類,哈哈

一般使用步驟是這樣的:

  1. 新建一個類,例如叫Test,這個類就是你最後要使用的類

  1. 然後Alt+s 開啟GsonFormat的快速鍵

  1. 把要轉換的json字串貼進去,點ok

4.確認轉換後的格式和類型,基本預設都可以的,直接點ok即可

  1. 類生成:

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 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 getData() { return data; } public void setData(List 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 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 getData() { return data; } public void setData(List data) { this.data = data; } } }
    巴扎黑
    import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSON; public class MM { class Tooltip { private String trigger; private Map axisPointer; private String formatter; public String getTrigger() { return trigger; } public void setTrigger(String trigger) { this.trigger = trigger; } public Map getAxisPointer() { return axisPointer; } public void setAxisPointer(Map 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(){{ this.put("type", "cross"); }}); tooltip.setFormatter("{b}: {c})"); Map map = new HashMap(); map.put("tooltip", tooltip); System.out.println(JSON.toJSONString(map)); } }

    輸出:

    {"tooltip":{"axisPointer":{"type":"cross"},"formatter":"{b}: {c})","trigger":"axis"}}
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!