java - 如何将多维json处理成3个数组

标签 java arrays json multidimensional-array

我有一个像这样的 JSON 结果:

jArr:
[
  ["53","54","55","62","63","64"],
  ["1133 Budapest Dráva utca 10.","1106 Budapest Örs vezér tere 25.","1106 Budapest Örs vezér tere 25.","1106 Budapest Örs vezér tere 25.","1133 Budapest Dráva utca 10.","1106 Budapest Örs vezér tere 25."],
  [
    ["2016-08-18","15:00:00"],
    ["2016-04-08","13:00:00"],
    ["2016-04-08","14:00:00"],
    ["2016-04-08","10:00:00"],
    ["2016-04-08","13:00:00"],
    ["2016-04-08","15:00:00"]
  ]
]

我想在java中将它处理成3个数组。 我想要将第一个 [] (如 53、54...)放入 int[] id 中。 第二个 [] 是一个 String[] 数组,第三个也是一个 String。 3个数组大小相同,但JSON结果可以多一些,也可以少一些。

Java:

try {
    post.setEntity(new UrlEncodedFormEntity(dataToSend));
    HttpResponse httpResponse = client.execute(post);
    HttpEntity entity = httpResponse.getEntity();
    String result = EntityUtils.toString(entity);
    JSONArray jArr = new JSONArray(result);
    int size = 30;
    String[] dates = new String[size];
    String[] places = new String[size];
    int[] ids = new int[size];
    if (jArr.length() != 0) {
        for (int i = 0; i < jArr.length(); i++){
            //I think it should be processed here
            ids[i] = jArr[0][i].getInt(i); //or something like that, but it doesn't work
            places[i] = jArr[1][i].getSting();    
            dates[i] = jArr[2][i].getSting();    
        }
    }

我应该如何将该 JSON 处理到这些数组中?

最佳答案

JSONArray.filters.getJSONArray() 将返回一个 JSONArray

示例:

JSONArray jArr = new JSONArray(result);
JSONArray j1 =  jArr.getJSONArray(0);   // 0th index. 

这是您的代码的简化答案:

public class TestJSON {

    public static void main(String[] args) throws JSONException {
        String result = "[\n"
                + "  [\"53\",\"54\",\"55\",\"62\",\"63\",\"64\"],\n"
                + "  [\"1133 Budapest Dráva utca 10.\",\"1106 Budapest Örs vezér tere 25.\",\"1106 Budapest Örs vezér tere 25.\",\"1106 Budapest Örs vezér tere 25.\",\"1133 Budapest Dráva utca 10.\",\"1106 Budapest Örs vezér tere 25.\"],\n"
                + "  [\n"
                + "    [\"2016-08-18\",\"15:00:00\"],\n"
                + "    [\"2016-04-08\",\"13:00:00\"],\n"
                + "    [\"2016-04-08\",\"14:00:00\"],\n"
                + "    [\"2016-04-08\",\"10:00:00\"],\n"
                + "    [\"2016-04-08\",\"13:00:00\"],\n"
                + "    [\"2016-04-08\",\"15:00:00\"]\n"
                + "  ]\n"
                + "]";
        JSONArray jArr = new JSONArray(result);
        if (jArr.length() != 0) {
            List ids = fillArray(jArr.getJSONArray(0));
            List places = fillArray(jArr.getJSONArray(1));
            List dates = fillArray(jArr.getJSONArray(2));
            System.out.println(ids);
            System.out.println(places);
            System.out.println(dates);
        }
    }

    private static List fillArray(JSONArray jsonArray) throws JSONException {
        List array = new ArrayList();
        for (int i = 0; i < jsonArray.length(); i++) {
            array.add(jsonArray.get(i));
        }
        return array;
    }
}

关于java - 如何将多维json处理成3个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36116252/

相关文章:

java - 在 hibernate 中存储集合时出现 org.hibernate.MappingException

java - 从另一台计算机获取信息

java - 尝试按字母顺序对对象数组进行排序,但对象无法转换为字符串

php - 使用 PHP 将数组插入 MySQL DB

json - Wordpress API JSON 返回限制

java - Java 中的 Com 对象,可能吗?

php - 使用数组的 MySQL 查询

mysql - 根据先前的 select 语句更新行

php - ajax 请求的响应在我的本地环境和我的实时服务器上是不同的

javascript - Ajax显示数组中的json数据