简体   繁体   English

如何从java中的json url读取数据?

[英]how to read data from json url in java?

I came across the following tutorial: http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/ 我遇到了以下教程: http : //www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

But this tutorial shows how to convert json to a Java object , when the json file is stored on the user's pc. 但是本教程显示了将json文件存储在用户PC上时如何将json转换为Java对象。 What I want to do is, when I go to the following link: 当我转到以下链接时,我想做的是:

http://api.rottentomatoes.com/api/public/v1.0/movies.json?apikey=[MyApiKey]&q=Toy+Story+3&page_limit=1 http://api.rottentomatoes.com/api/public/v1.0/movies.json?apikey=[MyApiKey]&q=Toy+Story+3&page_limit=1

it returns me the following json data: 它返回以下JSON数据:

{
  "total": 2,
  "movies": [{
    "id": "770672122",
    "title": "Toy Story 3",
    "year": 2010,
    "mpaa_rating": "G",
    "runtime": 103,
    "critics_consensus": "Deftly blending comedy, adventure, and honest emotion, Toy Story 3 is a rare second sequel that really works.",
    "release_dates": {
      "theater": "2010-06-18",
      "dvd": "2010-11-02"
    },
    "ratings": {
      "critics_rating": "Certified Fresh",
      "critics_score": 99,
      "audience_rating": "Upright",
      "audience_score": 91
    },
    "synopsis": "Pixar returns to their first success with Toy Story 3. The movie begins with Andy leaving for college and donating his beloved toys -- including Woody (Tom Hanks) and Buzz (Tim Allen) -- to a daycare. While the crew meets new friends, including Ken (Michael Keaton), they soon grow to hate their new surroundings and plan an escape. The film was directed by Lee Unkrich from a script co-authored by Little Miss Sunshine scribe Michael Arndt. ~ Perry Seibert, Rovi",
    "posters": {
      "thumbnail": "http://content6.flixster.com/movie/11/13/43/11134356_mob.jpg",
      "profile": "http://content6.flixster.com/movie/11/13/43/11134356_pro.jpg",
      "detailed": "http://content6.flixster.com/movie/11/13/43/11134356_det.jpg",
      "original": "http://content6.flixster.com/movie/11/13/43/11134356_ori.jpg"
    },
    "abridged_cast": [
      {
        "name": "Tom Hanks",
        "characters": ["Woody"]
      },
      {
        "name": "Tim Allen",
        "characters": ["Buzz Lightyear"]
      },
      {
        "name": "Joan Cusack",
        "characters": ["Jessie the Cowgirl"]
      },
      {
        "name": "Don Rickles",
        "characters": ["Mr. Potato Head"]
      },
      {
        "name": "Wallace Shawn",
        "characters": ["Rex"]
      }
    ],
    "alternate_ids": {"imdb": "0435761"},
    "links": {
      "self": "http://api.rottentomatoes.com/api/public/v1.0/movies/770672122.json",
      "alternate": "http://www.rottentomatoes.com/m/toy_story_3/",
      "cast": "http://api.rottentomatoes.com/api/public/v1.0/movies/770672122/cast.json",
      "clips": "http://api.rottentomatoes.com/api/public/v1.0/movies/770672122/clips.json",
      "reviews": "http://api.rottentomatoes.com/api/public/v1.0/movies/770672122/reviews.json",
      "similar": "http://api.rottentomatoes.com/api/public/v1.0/movies/770672122/similar.json"
    }
  }],
  "links": {
    "self": "http://api.rottentomatoes.com/api/public/v1.0/movies.json?q=Toy+Story+3&page_limit=1&page=1",
    "next": "http://api.rottentomatoes.com/api/public/v1.0/movies.json?q=Toy+Story+3&page_limit=1&page=2"
  },
  "link_template": "http://api.rottentomatoes.com/api/public/v1.0/movies.json?q={search-term}&page_limit={results-per-page}&page={page-number}"
}

I want to store this data in a Java Object and then use it. 我想将此数据存储在Java对象中,然后使用它。 I am a newbie in Java programming. 我是Java编程的新手。 Thanks. 谢谢。

I would suggest to use something like Gson library, for parsing the Json. 我建议使用Gson库之类的东西来解析Json。
Gson makes it quite elegant and simple. Gson使它非常优雅和简单。
However, as you are new, I would suggest you to go through the Gson Overview . 但是,如果您是新手,建议您仔细阅读Gson概述

Jackson has some built-in methods to read from URLs. Jackson具有一些内置方法来读取URL。 You can try the following (using java.net.URL): 您可以尝试以下操作(使用java.net.URL):

ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new URL("http://www.mydomain.com/info.json"), User.class);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM