URLからJSONデータを取得していて、ウェブサイトにデータを表示したいとします。私は正常にJSON階層(JSONオブジェクト)のデータを除くすべてのJSONデータを表示しています。 JSONArray person
とerror
データにアクセスできます。しかし、階層(JSONオブジェクト)updated
データにアクセスすることができません。JavaでJSONデータのネストされた要素にアクセスする方法は?
updated.time
にアクセスします。
import java.io.IOException;
import java.net.URL;
import org.apache.commons.io.IOUtils;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.ParseException;
public class ParseJson1 {
public static void main(String[] args) {
String url = "http://freemusicarchive.org/api/get/genres.json?api_key=60BLHNQCAOUFPIBZ&limit=2";
/*
{
"person": [
{
"name": "John",
"city": "Mumbai"
},
{
"name": "Rahul",
"city": "Delhi"
},
{
"name": "Sanjana",
"city": "Amritsar"
},
{
"name": "Anjali",
"city": "Hyderabad"
},
{
"name": "Mukund",
"city": "Bangalore"
},
{
"name": "Raunak",
"city": "Patna"
}
],
"updated": {
"time": "14:17:48",
"date": "2016-04-10"
},
"error": "2353"
}
*/
try {
String genreJson = IOUtils.toString(new URL(url));
JSONObject genreJsonObject = (JSONObject) JSONValue.parseWithException(genreJson);
// get the error
System.out.println(genreJsonObject.get("error"));
//Get Array Values
JSONArray genreArray = (JSONArray) genreJsonObject.get("person");
// get the first genre
JSONObject firstGenre = (JSONObject) genreArray.get(0);
System.out.println(firstGenre.get("name"));
// get the Second
JSONObject firstGenre = (JSONObject) genreArray.get(1);
System.out.println(firstGenre.get("name"));
// get the third
JSONObject firstGenre = (JSONObject) genreArray.get(2);
System.out.println(firstGenre.get("city"));
} catch (IOException | ParseException e) {
e.printStackTrace();
}
}
}
ここではちょっと混乱していますが、更新されたdatetimeオブジェクトを返すように 'updated'へのアクセスを希望しますか? –
何のエラーが出ますか? 'StackTrace'メッセージを追加してください。具体的にする。私の経験によれば、いくつかの 'ClassNotFound Exception'があるかもしれません。 @ Shubham –
あなたの問題に対する解決策を追加しましたが。あなたはこれをチェックアウトすることができます.. @ Shubham –