当前位置: 首页 > 面试题库 >

用Java解析JSON数据

那安宁
2023-03-14
问题内容

我想解析此页面上的一些数据: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),它会指出

返回: 指定键映射到的 值; 如果此映射不包含该键的映射,则 返回 null

您的JSON不包含key的映射time

编辑:

如果您的意思title不是time,请提取此JSON摘录

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

你需要先得到scheduleJSONObject,那么service作为JSONObject,然后title作为正常String价值。根据JSON值的类型,不同地应用它。



 类似资料:
  • 问题内容: 我已经多次解析JSON数据,但是由于某种原因,无法找到嵌套数据时要使用的正确语法。我正在尝试从此JSON解析“资产”,但是无论我尝试什么,都继续获取为foreach()提供的无效参数。 我希望这是… 问题答案: 来自php官方文档:http : //php.net/manual/fr/function.json- decode.php 第二个func arg用于assoc数组返回。如果

  • 问题内容: 我有JSON对象,如下所示: 在Java中,我想解析上述json对象并将值存储在arraylist中。 我正在寻找一些代码来实现这一目标。 问题答案: 我假设你想将interestKeys存储在列表中。 使用库:

  • 问题内容: 如何使用java进行json数据解析?有哪些方法? 问题答案: 使用org.json 使用GSON

  • 问题内容: 我有大约7000行要解析的JSON数据。在这里可以看到其中一部分的示例。我所做的就是利用和把所有的数据转换成字符串。(奇怪的是,它将所有数据放入一条很长的行中)。但是现在我想解析这个,我不确定如何。谁能解释如何使用?我之前已经用Java解析过JSON数据,但是用C#却遇到了麻烦,特别是因为我无法找到带有清晰示例的文档。任何帮助将不胜感激。 问题答案: 尝试使用JSON.Net,如果您还

  • 问题内容: 我在解析从javascript获取的JSON时遇到问题。JSON的格式是这样的: 到目前为止,我已经能够做到这一点: 但是我现在还需要用这些位置创建一个类。我一直在上课,因为我先尝试打印输出,但是我无法进一步细分它。我收到此错误消息: java.lang.IllegalStateException:这不是JSON数组。 我的代码是这样的: 我也尝试过这种方式: 在这种情况下,我得到:

  • 问题内容: 我想解析JSON数组并使用gson。首先,我可以记录JSON输出,服务器清楚地响应客户端。 这是我的JSON输出: 我尝试了这种结构进行解析。一个类,该类取决于单个和所有JSONArray。 上课时间: 当我尝试使用gson时,没有错误,没有警告,也没有日志: 怎么了,我该怎么解决? 问题答案: 你可以直接解析直接类,不需要再花更多时间包装你的Post类,也不需要新的类: 希望能有所帮