我有这个简单的二维(2d)数组的json字符串,并希望像String[][]
一样转换为JAVA 2d字符串数组。
串
"[ [\"case1\",[\"case1-a\"]], [\"case2\",[\"case2-a\",\"case2-b\",\"case2-c\"]] ]"
最简单的方法是什么?谷歌搜索,但找不到一个简单的解决方案。感谢任何帮助!
使用现代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]]