【问题标题】:Parse a simple 2d Array string to Java 2d String Array将简单的二维数组字符串解析为 Java 二维字符串数组
【发布时间】:2019-02-18 07:24:52
【问题描述】:

我有这个简单的二维 (2d) 数组的 json 字符串,并想转换为像 String[][] 这样的 JAVA 二维字符串数组。

字符串

"[ [\"case1\",[\"case1-a\"]], [\"case2\",[\"case2-a\",\"case2-b\",\"case2-c\"]] ]"

最简单的方法是什么?一直在谷歌搜索,但找不到简单的解决方案。感谢任何帮助!

【问题讨论】:

标签: java arrays json string 2d


【解决方案1】:

使用现代 JSON 库可能有更简洁的方法,但由于这种方式可能更容易理解,因此我将逐步演示如何使用旧的“简单 JSON”库:

package samplejava;

import java.util.Arrays;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;

public class JsonTest {
public static void main(String[] args) {
    JSONArray rows = (JSONArray) JSONValue.parse("[ [\"case1\",[\"case1-a\"]], [\"case2\",[\"case2-a\",\"case2-b\",\"case2-c\"]] ]");   
    System.out.println("Before: " + rows.toJSONString());
    String[][] result = new String[rows.size()][];
    for(int row = 0; row < rows.size(); row++) {
        JSONArray cols = (JSONArray)((JSONArray) rows.get(row)).get(1);
        String[] temp = new String[cols.size()];
        for(int col=0; col < cols.size(); col++) {
            temp[col] = cols.get(col).toString();
        }
        result[row] = temp;
    }
    System.out.println("After: " + Arrays.deepToString(result));   
}
}

输出:

之前:[["case1",["case1-a"]],["case2",["case2-a","case2-b","case2-c"]]]

之后:[[case1-a],[case2-a,case2-b,case2-c]]

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 2016-05-06
    • 2013-03-28
    • 1970-01-01
    相关资源
    最近更新 更多