java - 如何在java中制作分层Json

标签 java json

我需要制作一个类似于树节点的 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 结构有人可以帮助我吗?

最佳答案

您应该使用 API 来管理您的 JSON,有几个适用于 Java 的 API 可靠且快速。选择 https://stackoverflow.com/questions/338586/a-better-java-json-library 中提到的一个然后它会为你完成繁重的工作。如果您自己操作文本,很容易出错。

以下示例使用 Jackson 库(从 http://jackson.codehaus.org/ 下载该库),但类似的概念适用于大多数其他 JSON 库。

您的 JSON 非常简单。为每个唯一类型(任何不是像 intString 这样的原语的类型)创建一个 Java POJO,然后用 @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,只需传递类类型即可。这是 jackson :

ObjectMapper mapper = new ObjectMapper();  
CategoryJSON c = mapper.readValue(jsonInput, CategoryJSON.class);  //read
System.out.println(mapper.writeValueAsString(c)); //write

关于java - 如何在java中制作分层Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21119907/

相关文章:

java - 创建一个目录,分别存放源文件和类文件。但是,我无法将一个类扩展到同一包中的另一个类

java - 从 firebase 数据库获取数据

PHP 将具有多条记录的 XML 文件转换为 JSON

java - 标记 "="出现语法错误,此标记后应有表达式

Java 新手错误 : cannot find symbol

java - 在 spring 3/PostgreSQL 8.4.9 中从行插入中获取自动生成的键

java - 使用 JSONObject 和 JSONArray 创建 json 字符串

javascript - 即使服务器端函数成功返回,回调函数也没有运行

ruby-on-rails - 提取可能是也可能不是数组的哈希键

javascript - 如何根据 json 数据列表更新 html 项目列表