2016-11-08 134 views
1

我来自PHP背景的Java,并且很惊讶地发现JSON对象转换受到如此的限制。在所有杰克逊教程中,我看到要读取的对象需要预定义。因此,如果我的数据采用JSON API格式,那么我需要编写样板代码去除除“数据”部分之外的所有内容,然后以某种方式将所有字符串逐个转换为对象。Java`json_decode`(PHP)等效

我真的很想念PHP的json_decodefunction,它会读取任何JSON并给你一个PHP对象来玩。它还在对象中构建必要的结构,根据需要添加数组和子对象。当然我明白Java是一种编译语言,但我想知道如何使它更容易。

+1

如果我理解正确,您可以查看[google-gson](https://github.com/google/gson)。 –

+1

@ S.I。是的,这正是我正在寻找的!即时创建对象,无需定义类,非常方便! – dotslash

回答

2

作为一种强类型语言,Java通常具有较少的“只给我”类型的功能,但这并不意味着它们不存在。即使Jackson可以在没有预定义架构的情况下反序列化JSON,因此您可以使用MapsLists而不是域对象。

请记住,如果您正在研究“真正”的项目,定义模式有很多好处。他们不是为了惹恼你而发明的,而是为了确保你可以相信你的数据是以正确的形式存在的(或者如果不是这样的话,可以尽早发现)。

+1

是的,那里有一些伟大的智慧话语。我现在对一个快速而肮脏的程序更感兴趣,但是我看到即使在这个级别上有一个架构是一件好事。 – dotslash

+0

事实上,有时候你只是想完成一些事情,然后在完成细节的时候正确地打磨它。 – Kayaman

+0

是的,但我想为类定义输入10-20多行应该不会受到伤害。 :-) – dotslash