-1

指定されたjson配列からcoldataにアクセスする方法は?また、fromdateとtodateとarrayName

{

"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"}]}}}]}

4

1 に答える 1

1

JSON を解析するときは、Good JSON ViewerJSON Libraryが必要です。これは、配列のツリー構造を確認するのに役立ちます。

これが私が見るものです、ここに画像の説明を入力

そこで、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"));
    }

}

}

そして出力

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

そこから残りを理解できると確信しています

于 2013-03-14T16:19:49.860 に答える