-1

如何从给定的json数组访问coldata?还有 fromdate 和 todate 和 arrayName

{

“fromdate”:1361912208000,“todate”:1361998608000,“datavalues”:[{“arrayName”:“第一个数组”,“datavalue”:{“rowvalues”:[{“coldata”:[“1”,“5342” , "75" ] }, { "coldata":[ "23", "4465", "75" ] } ], "colnames":[ { "id":"id1", "type":"字符串”,“标签”:“id”},{“id”:“id2”,“类型”:“数字”,“标签”:“数字”},{“id”:“id3”,“类型” :"Number", "label":"number" } ] } }, { "arrayName":"第二个数组", "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",“标签”:“数字” } ] } } ] }

4

1 回答 1

1

解析 JSON 时,需要有一个 Good JSON Viewer和一个JSON 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 回答