有種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對象,可是完全偏離目標了,本來就只是一個輔助對象。有沒有什麼好的做法?
滿天的星座2017-05-17 10:10:15
雖然並沒有太理解你的問題,不過針對json去寫一些類表示這個json的結構,是有點煩...不過有個神器可以幫你簡單解決這個問題,哈哈
IDEA裡有個神器叫GsonFormat
這個插件處理json十分好用,不管json有多複雜,只要json格式正確,自動幫你生成類,哈哈
一般使用步驟是這樣的:
新建一個類,例如叫Test,這個類就是你最後要使用的類
然後Alt+s 開啟GsonFormat的快速鍵
把要轉換的json字串貼進去,點ok
4.確認轉換後的格式和類型,基本預設都可以的,直接點ok即可
類生成:
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;
}
}
}
巴扎黑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));
}
}
輸出:
{"tooltip":{"axisPointer":{"type":"cross"},"formatter":"{b}: {c})","trigger":"axis"}}