java没有输出则输出,Java Json程序没有显示任何输出

您混合了基本的Java编程和JSON映射错误.首先,请记住在定义Java类时遵循

lower camel case naming conventions.它不仅是最佳实践,更重要的是,如果您不遵循这种模式(包括Jackson),几个工具和库将无法工作.

就JSON映射错误而言,将JSON映射到Java对象时要记住的最重要的事情是JSON数据实际上是一个映射.它将键与值相关联,其中值可以是基元,对象或数组(集合).因此,给定一个JSON结构,您必须查看每个键值的结构,然后决定该值应该在Java中表示为基元,对象还是任何一个数组.没有捷径可言,您将通过经验学习.这是一个例子:

{

"total": 1, // maps to primitive, integer

"movies": [ // '[' marks the beginning of an array/collection

{ // '{' marks the beginning of an object

"id": "770672122", // maps to primitive, string

"title": "Toy Story 3",

"year": 2010,

"mpaa_rating": "G",

"runtime": 103,

"release_dates": { // each array object also contains another object

"theater": "2010-06-18",

"dvd": "2010-11-02"

}

}

]

}

映射上面的示例JSON时,您需要定义与最外层{.匹配的根对象.让我们将这个根对象称为MovieResponse.

public class MovieResponse {

}

现在,沿着JSON数据,我们开始将所有JSON属性映射到Java属性:

@JsonIgnoreProperties(ignoreUnknown = true)

public class MovieResponse {

private Integer total; // map from '"total": 1'

private List movies; // map from '"movies": [', remember, its a collection

}

简单吧?但是,当然,我们还需要为Movie类定义一个结构.再一次,走JSON:

@JsonIgnoreProperties(ignoreUnknown = true)

public class Movie {

private String id; // map from '"id": "770672122"'

private String title; // map from '"title": "Toy Story 3"'

private Integer year;

@JsonProperty("mpaa_rating")

private String mpaaRating;

private Integer runtime;

@JsonProperty("release_dates")

private Release released; // another object mapping!

}

最后,映射代表发布日期的最内层对象:

public class Release {

private String theater;

private String dvd;

}

多数民众赞成,非常直截了当.注意在Movie类中使用@JsonProperty.它允许您使用不同的名称将JSON中的属性映射到Java中的属性.另请注意,为简洁起见,上述每个类都省略了构造函数/ setter / getter.在您的真实代码中,您将添加它们.最后,您将使用以下代码将示例JSON映射到Java MovieResponse类:

MovieResponse response = new ObjectMapper().readValue(json, MovieResponse.class);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值