繁体   English   中英

将JSON数组解析为列表

[英]Parse JSON array into list

将这个json数组解析为列表的最快方法是什么?

[
    ["FundRequest"],
    ["nOS"],
    ["NEX"],
    ["DREP"],
    ["ChromaWay"],
    ["Jura"],
    ["Origo"],
    ["Phantasma"],
    ["NuCypher"],
    ["Oasis Labs"]
]

它是从以下代码生成的:

private void getNames(String spreadsheetUrl) {
    JSONObject json = readJsonFromUrl(spreadsheetUrl);
    String result = json.get("values").toString();
    log.debug("Found: {}", result);
}

输出来自以下json响应:

{
  "range": "Frontpage!E6:E15",
  "majorDimension": "ROWS",
  "values": [
    [
      "FundRequest"
    ],
    [
      "nOS"
    ],
    [
      "NEX"
    ],
    [
      "DREP"
    ],
    [
      "ChromaWay"
    ],
    [
      "Jura"
    ],
    [
      "Origo"
    ],
    [
      "Phantasma"
    ],
    [
      "NuCypher"
    ],
    [
      "Oasis Labs"
    ]
  ]
}

您可以使用类似GSON的库:

用maven安装它:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.2.4</version>
</dependency>

编辑:

如果您尝试解析此内容:

{
  "range": "Frontpage!E6:E15",
  "majorDimension": "ROWS",
  "values": [
    [
      "FundRequest"
    ],
    [
      "nOS"
    ],...

作为java对象,然后为您的json实体创建包装器类:

public class Wrapper {

    private String range;
    private String majorDimension;
    private List<?> values;

    /**
     * @return the range
     */
    public String getRange() {
        return range;
    }
    /**
     * @return the values
     */
    public List<?> getValues() {
        return values;
    }
    /**
     * @param values the values to set
     */
    public void setValues(List<?> values) {
        this.values = values;
    }
    /**
     * @return the majorDimension
     */
    public String getMajorDimension() {
        return majorDimension;
    }
    /**
     * @param majorDimension the majorDimension to set
     */
    public void setMajorDimension(String majorDimension) {
        this.majorDimension = majorDimension;
    }
    /**
     * @param range the range to set
     */
    public void setRange(String range) {
        this.range = range;
    }
}

然后使用GSON可以将Json字符串解析为包装对象:

Gson gson = new GsonBuilder().create();
Wrapper w = gson.fromJson(jsonString, Wrapper.class);

检查以下内容: http : //www.javacreed.com/simple-gson-example/

编辑:

如果您尝试解析此内容:

[
    ["FundRequest"],
    ["nOS"],
    ["NEX"],
    ["DREP"],
    ["ChromaWay"],
    ["Jura"],
    ["Origo"],
    ["Phantasma"],
    ["NuCypher"],
    ["Oasis Labs"]
]

作为数组的数组,然后使用gson可以执行以下操作:

    List<?> arr = gson.fromJson("[[\"FundRequest\"],[\"nOS\"],...]", List.class);
    System.out.println(arr);

println将打印:[[FundRequest],[nOS],...]

数组的json数组应解析为列表列表

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM