首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java/Spring中使用Exchange()将Json转换为对象

在Java/Spring中使用Exchange()将Json转换为对象
EN

Stack Overflow用户
提问于 2016-11-23 10:55:56
回答 2查看 259关注 0票数 1

我用的是

代码语言:javascript
运行
复制
 ResponseEntity<List<item>> res = restTemplate.exchange(
                "http://localhost:8080/page",
                HttpMethod.GET,
                null,
                new ParameterizedTypeReference<List<item>>() {});

对于我的一个应用程序,但因为我做了rest服务,它只通过Json返回了2个项目。我的问题是,我正在尝试获取天气和我使用的api的返回值:

代码语言:javascript
运行
复制
{"coord":{"lon":-0.13,"lat":51.51},"weather":    [{"id":741,"main":"Fog","description":"fog","icon":"50n"},{"id":701,"main":"Mist","description":"mist","icon":"50n"}],"base":"stations","main":{"temp":278.47,"pressure":1012,"humidity":100,"temp_min":277.15,"temp_max":279.15},"visibility":10000,"wind":{"speed":1},"clouds":{"all":75},"dt":1479864000,"sys":{"type":1,"id":5093,"message":0.0311,"country":"GB","sunrise":1479886350,"sunset":1479916868},"id":2643743,"name":"London","cod":200}

这是大量的JSON,所以我想知道我是否必须用setter/getter( coord字段、id、描述、just、name等)来创建一个包含所有这些对象的类,或者我可以只使用coord对象和weather对象来创建一个对象,并且只映射这些字段?

谢谢你的建议。

编辑:

也许这与@JsonIgnoreProperties标签的ignoreUnknown = true属性有关?

EN

回答 2

Stack Overflow用户

发布于 2016-11-23 11:15:45

我认为您只需要两个类来设置它们的getter和setter类。你的“天气”变量只是列表,其他的是静态变量。我会这样做:

代码语言:javascript
运行
复制
public class Weather {

  private Long id;

  private String name;

  private Long cod;

  private coordLong string;

  private coordLat string;

  priva... baseStations, cloudsAll, windSpeed, mainTemp...

  private List<WeatherList> weatherList;

  ...
  //getters setters
票数 0
EN

Stack Overflow用户

发布于 2016-11-23 11:33:02

如果您想映射所有变量,只需创建一个Model类并映射您的响应,如下所示

代码语言:javascript
运行
复制
public class WeatherData{

private Coordinate coord;
private List<Weather> weather;

//Getters and setters setCoord(),getCoord().setWeather(),getWeather().

public class Coordinate{

    private Double lon;
    private Double lat;
    //Getters and Setters
}

public class Weather{

    private Integer id;
    private String main;
    private String description;
    private String icon;

    //Getters and setters
}

//Remaining fields

}

然后像这样映射您的json

代码语言:javascript
运行
复制
//json is your response in String format
Gson gson = new Gson();
WeatherData weatherData = gson.fromJson(json,WeatherData.class);
//handle exception here

然后得到任何像这样的变量值

代码语言:javascript
运行
复制
lat = weatherData.getCoord().getLat();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40755264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档