我需要创建一个类似于树节点的json结构,其中一些根节点将存在,并且它们有一些子节点。我的json结构就像我发布的那样..
{
chart: {
caption: "Subscriber Summary Percentage",
xAxisName: "Month",
yAxisName: "% Subscriber",
showvalues: "0",
palette: "1"
},
categories: [
{
category: [
{
label: "JAN"
},
{
label: "FEB"
},
{
label: "MAR"
},
{
label: "APR"
},
{
label: "MAY"
},
{
label: "JUN"
},
{
label: "JUL"
},
{
label: "AUG"
},
{
label: "SEP"
}
]
}
],
dataset: [
{
seriesname: "New Added",
data: [
{
value: "1.1887604"
},
{
value: "2.1255539"
},
{
value: "2.3852911"
},
{
value: "2.9953901000000003"
},
{
value: "2.5770609"
},
{
value: "2.8420104000000004"
},
{
value: "4.543343"
},
{
value: "3.7596994"
},
{
value: "5.0751309000000004"
}
]
},
{
seriesname: "Churned",
data: [
{
value: "2.4009264"
},
{
value: "2.4021593"
},
{
value: "2.8101032000000004"
},
{
value: "3.1267909000000005"
},
{
value: "3.790831"
},
{
value: "3.9487281"
},
{
value: "4.533631"
},
{
value: "5.0275186"
},
{
value: "5.4198564"
}
]
}
]
}
这是我的json结构,任何人都可以帮助我吗?
答案 0 :(得分:1)
您应该使用API来管理您的JSON,有几种可用于Java的可靠且快速的。选择https://stackoverflow.com/questions/338586/a-better-java-json-library中提到的一个,然后它会为你做繁重的工作。如果你自己操纵文本,它很容易犯错误。
以下示例使用Jackson库(从http://jackson.codehaus.org/下载库),但类似的概念适用于大多数其他JSON库。
您的JSON非常简单。为每个唯一类型创建一个Java POJO(任何不是int
或String
之类的原始类型),然后使用@JsonProperty
和@XmlRootElement(name="")
或API使用的任何内容对其进行注释
public class Chart{
@JsonProperty
public String caption;
@JsonProperty
public String xAxisName;
@JsonProperty
public String yAxisName;
@JsonProperty
public boolean showValues;
@JsonProperty
public int palette;
}
public class Categories{
@JsonProperty
public String[] category;//or whatever data type you're using, a tuple or something, category class array if you like
}
等
然后最终
public class CategoryJSON{
@JsonProperty
public Chart chart;
@JsonProperty
public Categories category;
}
然后你的API应该知道如何自动序列化和反序列化该格式的JSON,只需传递类类型。这是杰克逊:
ObjectMapper mapper = new ObjectMapper();
CategoryJSON c = mapper.readValue(jsonInput, CategoryJSON.class); //read
System.out.println(mapper.writeValueAsString(c)); //write