使用java解析多个json数组

使用java解析多个json数组,java,json,Java,Json,如何从给定的json数组访问coldata?还包括fromdate和todate以及arrayName “起始日期”:1361912208000, “todate”:1361998608000, “数据值”:[ { “arrayName”:“第一个数组”, “数据值”:{ “行值”:[ { “coldata”:[ "1", "5342", "75" ] }, { “coldata”:[ "23", "4465", "75" ] } ], “colnames”:[ { “id”:“id1”, “类

如何从给定的json数组访问coldata?还包括fromdate和todate以及arrayName

“起始日期”:1361912208000, “todate”:1361998608000, “数据值”:[ { “arrayName”:“第一个数组”, “数据值”:{ “行值”:[ { “coldata”:[ "1", "5342", "75" ] }, { “coldata”:[ "23", "4465", "75" ] } ], “colnames”:[ { “id”:“id1”, “类型”:“字符串”, “标签”:“id” }, { “id”:“id2”, “类型”:“编号”, “标签”:“编号” }, { “id”:“id3”, “类型”:“编号”, “标签”:“编号” } ] } }, { “arrayName”:“第二个数组”, “数据表”:{ “行值”:[ { “coldata”:[ "1", "5342", "75" ] }, { “coldata”:[ "23", "4465", "75" ] } ], “colnames”:[ { “id”:“id1”, “类型”:“字符串”, “标签”:“id” }, { “id”:“id2”, “类型”:“编号”, “标签”:“编号” }, { “id”:“id3”, “类型”:“编号”, “标签”:“编号” } ] } } ] }


在解析JSON时,您需要有一个良好的。 这有助于您查看阵列的树结构

这是我看到的

因此,我编写了一些代码来解析datavalues数组中的第一个对象

package com.stackoverflow.answers;

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONReader {

static String JSON_STRING = "{\"fromdate\":1361912208000, \"todate\":1361998608000, \"datavalues\":[ { \"arrayName\":\"1st Array\", \"datavalue\":{ \"rowvalues\":[ { \"coldata\":[ \"1\", \"5342\", \"75\" ] }, { \"coldata\":[ \"23\", \"4465\", \"75\" ] } ], \"colnames\":[ { \"id\":\"id1\", \"type\":\"String\", \"label\":\"id\" }, { \"id\":\"id2\", \"type\":\"Number\", \"label\":\"number\" }, { \"id\":\"id3\", \"type\":\"Number\", \"label\":\"number\" } ] } }, { \"arrayName\":\"2nd Array\", \"dataTable\":{ \"rowvalues\":[ { \"coldata\":[ \"1\", \"5342\", \"75\" ] }, { \"coldata\":[ \"23\", \"4465\", \"75\" ] } ], \"colnames\":[ { \"id\":\"id1\", \"type\":\"String\", \"label\":\"id\" }, { \"id\":\"id2\", \"type\":\"Number\", \"label\":\"number\" }, { \"id\":\"id3\", \"type\":\"Number\", \"label\":\"number\" } ] } } ] }";

public static void main(String[] args) {

    // Create root JSON Object
    JSONObject object = new JSONObject(JSON_STRING);
    System.out.println(object.get("fromdate"));
    System.out.println(object.get("todate"));
    System.out.println("--------------------------------");

    // Get Data Values
    JSONArray dataValues = object.getJSONArray("datavalues");

    System.out.println("------------- Data Values ---------------");

    JSONObject datavalue = dataValues.getJSONObject(0);
    System.out.println("Arrray Name : " + datavalue.getString("arrayName"));

    JSONObject dval = datavalue.getJSONObject("datavalue");

    System.out.println("------------- Row Values ---------------");
    JSONArray rowvalues = dval.getJSONArray("rowvalues");

    for (int y = 0; y < rowvalues.length(); y++) {
        JSONObject columns = rowvalues.getJSONObject(y);

        System.out.println("------------- Col data --------------");
        JSONArray coldata = columns.getJSONArray("coldata");

        for (int z = 0; z < coldata.length(); z++) {
            System.out.println(coldata.get(z));
        }
    }

    JSONArray colnames = dval.getJSONArray("colnames");

    for (int y = 0; y < colnames.length(); y++) {
        JSONObject columns = colnames.getJSONObject(y);

        System.out.println("------------- Col Names --------------");

        System.out.println(columns.get("id"));
        System.out.println(columns.get("type"));
        System.out.println(columns.get("label"));
    }

}

我相信您可以从中找出剩余的部分

您已经尝试使用JSONArray在阵列中循环!JSONArray obj1=JSONUtil.getJSONArray(obj,“数据值”);对于(int i=0;我在您的问题中提出了这个问题,什么不起作用?:-)不确定需要添加多少个循环才能访问coldata?所以,发了上面的问题!
package com.stackoverflow.answers;

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONReader {

static String JSON_STRING = "{\"fromdate\":1361912208000, \"todate\":1361998608000, \"datavalues\":[ { \"arrayName\":\"1st Array\", \"datavalue\":{ \"rowvalues\":[ { \"coldata\":[ \"1\", \"5342\", \"75\" ] }, { \"coldata\":[ \"23\", \"4465\", \"75\" ] } ], \"colnames\":[ { \"id\":\"id1\", \"type\":\"String\", \"label\":\"id\" }, { \"id\":\"id2\", \"type\":\"Number\", \"label\":\"number\" }, { \"id\":\"id3\", \"type\":\"Number\", \"label\":\"number\" } ] } }, { \"arrayName\":\"2nd Array\", \"dataTable\":{ \"rowvalues\":[ { \"coldata\":[ \"1\", \"5342\", \"75\" ] }, { \"coldata\":[ \"23\", \"4465\", \"75\" ] } ], \"colnames\":[ { \"id\":\"id1\", \"type\":\"String\", \"label\":\"id\" }, { \"id\":\"id2\", \"type\":\"Number\", \"label\":\"number\" }, { \"id\":\"id3\", \"type\":\"Number\", \"label\":\"number\" } ] } } ] }";

public static void main(String[] args) {

    // Create root JSON Object
    JSONObject object = new JSONObject(JSON_STRING);
    System.out.println(object.get("fromdate"));
    System.out.println(object.get("todate"));
    System.out.println("--------------------------------");

    // Get Data Values
    JSONArray dataValues = object.getJSONArray("datavalues");

    System.out.println("------------- Data Values ---------------");

    JSONObject datavalue = dataValues.getJSONObject(0);
    System.out.println("Arrray Name : " + datavalue.getString("arrayName"));

    JSONObject dval = datavalue.getJSONObject("datavalue");

    System.out.println("------------- Row Values ---------------");
    JSONArray rowvalues = dval.getJSONArray("rowvalues");

    for (int y = 0; y < rowvalues.length(); y++) {
        JSONObject columns = rowvalues.getJSONObject(y);

        System.out.println("------------- Col data --------------");
        JSONArray coldata = columns.getJSONArray("coldata");

        for (int z = 0; z < coldata.length(); z++) {
            System.out.println(coldata.get(z));
        }
    }

    JSONArray colnames = dval.getJSONArray("colnames");

    for (int y = 0; y < colnames.length(); y++) {
        JSONObject columns = colnames.getJSONObject(y);

        System.out.println("------------- Col Names --------------");

        System.out.println(columns.get("id"));
        System.out.println(columns.get("type"));
        System.out.println(columns.get("label"));
    }

}
1361912208000
1361998608000
------------- Data Values ---------------
Arrray Name : 1st Array
------------- Row Values ---------------
------------- Col data --------------
1
5342
75
------------- Col data --------------
23
4465
75
------------- Col Names --------------
id1
String
id
------------- Col Names --------------
id2
Number
number
------------- Col Names --------------
id3
Number
number