我想解析此页面上的一些数据: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。有人可以告诉我我需要更改吗?谢谢。
如果您阅读的Javadoc JSONObject#get(String)实际上是HashMap.get(String),它会指出
JSONObject#get(String)
HashMap.get(String)
返回: 指定键映射到的 值; 如果此映射不包含该键的映射,则 返回 null
您的JSON不包含key的映射time。
time
编辑:
如果您的意思title不是time,请提取此JSON摘录
title
{"schedule":{"service":{"type":"radio","key":"radio1","title":"BBC Radio 1",...
你需要先得到schedule的JSONObject,那么service作为JSONObject,然后title作为正常String价值。根据JSON值的类型,不同地应用它。
schedule
JSONObject
service
String