将简单的2d数组字符串解析为Java 2d String Array

问题描述 投票:0回答:1

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

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

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

java arrays json string 2d
1个回答
0
投票

使用现代JSON库可能有更简洁的方法,但由于这种方式可能更容易理解,我正在演示如何使用旧的“Simple 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));   
}
}

输出:

之前:[[“案例1”,[“案例1-a”]],[“案例2”,[“案例2-a”,“案例2-b”,“案例2-c”]]]

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

© www.soinside.com 2019 - 2024. All rights reserved.