我是从PHP背景来到Java的,并且很惊讶地发现JSON到对象的转换是如此受限制。在所有杰克逊教程I came across中,看起来需要预先定义要读取的对象。因此,如果我的数据是JSON API格式,我需要编写样板代码来去掉除“数据”部分之外的所有内容,然后以某种方式将所有字符串逐个转换为对象。
我真的很想念PHP的json_decode
function,它将读取任何JSON并为您提供一个PHP对象。它还在对象中构建必要的结构,根据需要添加数组和子对象。当然我理解Java是一种编译语言,但我想知道如何使这更容易。
答案 0 :(得分:1)
作为一种强类型语言,Java通常较少有这些“只是给我”的功能类型,但这并不意味着它们不存在。即使Jackson可以在没有预定义架构的情况下反序列化JSON,也会为您提供Maps
和Lists
而不是域对象。
请记住,如果您正在处理“真实”项目,那么定义模式有很多好处。它们不是为了惹恼你而发明的,而是为了确保你可以相信你的数据是以正确的形式存在(或者如果不是那么早就找出来)。