从JSON数组中提取数据

use*_*405 9 java json

我知道它是一个数组,但我是JSON的新手,需要帮助理解这是如何构造的,这是我尝试提取数据:

String JSonString = readURL("//my URL is here");
JSONArray s = JSONArray.fromObject(JSonString);
JSONObject Data =(JSONObject)(s.getJSONObject(0));
System.out.println(Data.get("name"));
Run Code Online (Sandbox Code Playgroud)

我的JSON数据是这样的:

 {
"sports": [
    {
        "name": "basketball",
        "id": 40,
        "uid": "s:40",
        "leagues": [
            {
                "name": "National Basketball Assoc.",
                "abbreviation": "nba",
                "id": 46,
                "uid": "s:40~l:46",
                "groupId": 7,
                "shortName": "NBA",
                "athletes": []
            }
        ]
    }
],
"resultsOffset": 10,
"resultsLimit": 10,
"resultsCount": 1,
"timestamp": "2013-11-18T03:15:43Z",
"status": "success"
}
Run Code Online (Sandbox Code Playgroud)

我真的不太了解这些东西所以所有的帮助表示赞赏.

kir*_*wka 10

这是一个想法:

JSONObject root = new JSONObject(yourJsonString);
JSONArray sportsArray = root.getJSONArray("sport");
// now get the first element:
JSONObject firstSport = sportsArray.getJSONObject(0);
// and so on
String name = firstSport.getString("name"); // basketball
int id = firstSport.getInt("id"); // 40
JSONArray leaguesArray = firstSport.getJSONArray("leagues");

// and so on, you can process leaguesArrays similarily
Run Code Online (Sandbox Code Playgroud)

它应该工作(如果有的话,随意抱怨编译错误)