在Java中解析JSON数据(Parsing JSON data in Java)

2019-10-19 01:41发布

我想从这个网页解析一些数据: http://www.bbc.co.uk/radio1/programmes/schedules/england/2013/03/1.json

我想分析的数据,不过标题我不确定我怎么能提取数据。 这是我迄今所做的:

 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import org.json.simple.JSONObject;
 import org.json.simple.parser.JSONParser;

 public class Test
 {
    public Test() { }

    public static void main(String[] args)
    {
            URL url;
            HttpURLConnection connection = null;
            InputStream is = null;
            JSONParser parser = new JSONParser();

            try
            {
                    url = new URL("http://www.bbc.co.uk/radio1/programmes/schedules/england/2013/03/1.json");
                    connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.connect();
                    is = connection.getInputStream();
                    BufferedReader theReader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                    String reply;
                    while ((reply = theReader.readLine()) != null)
                    {
                            System.out.println(reply);
                            Object obj = parser.parse(reply);
                            JSONObject jsonObject = (JSONObject) obj;
                            String title = (String) jsonObject.get("time");
                            System.out.println(title);
                    }
            }
            catch (Exception e) {
                    e.printStackTrace();
            }
    }

}

这只是返回null。 谁能告诉我什么,我需要改变吗? 谢谢。

Answer 1:

如果你读的javadoc中JSONObject#get(String)这实际上是HashMap.get(String) ,它规定

返回:值到指定键被映射,或如果此映射包含该键的映射

您的JSON不包含该键的映射time

编辑:

如果你的意思是title ,而不是time ,采取JSON的这种提取物

{"schedule":{"service":{"type":"radio","key":"radio1","title":"BBC Radio 1",...

首先,您需要获得schedule作为JSONObject ,则service作为JSONObject ,然后title作为一个正常的String值。 此不同,这取决于JSON值的类型应用。



Answer 2:

使用类似JSONGen更好地了解你的数据结构,甚至利用你的数据映射到生成的对象谷歌,GSON库



文章来源: Parsing JSON data in Java