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