将数据从url保存到JSON对象

时间:2016-08-11 20:51:34

标签: java json parsing

我必须使用org.json库创建JSON解析器以将从url接收的数据保存到JSON对象中,并且只使用java标准库但我不知道如何连接到那些

 String line = "326";

    URL oracle = new URL("https://api.tfl.gov.uk/Line/"+line+"/Arrivals?app_id=&app_key=");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();

这是我的连接代码

2 个答案:

答案 0 :(得分:0)

我的建议是使用像杰克逊这样的JSON解析器。

  1. 创建一个用于存储要存储的数据的类 那个JSON。
  2. 使用网址连接并抓取JSON
  3. 使用Jackson将其转换为Java对象
  4. 如果您需要更多帮助,请告诉我,我可以提供帮助。

答案 1 :(得分:0)

使用像okhttp这样的http客户端库来发出请求并获取字符串正文。

然后使用像Jackson这样的json解析器将接收到的字符串解析为Json对象。

使用okhttp如下:

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url(url)
  .build();

Response resp = client.newCall(request).execute();
String response =  resp.body().string();

获得响应字符串后,可以使用Jackson ObjectMapper从中创建jsonNode,如下所示

ObjectMapper mapper = new ObjectMapper();
JsonNode tree = mapper.readTree(response);

或者通过将响应解析为

来获取您定义的POJO
YourClass mappedPOJO = mapper.readValue(response, YourClass.class);

让我们说你传入的json是

{
    "key1":"value1",
    "key2": {
        "key3":"value3"
    }
}

然后tree.get("key1")为您提供“value1”,

tree.get("key1").get("key2")为您提供“value3”