我是Java的新手,现在正在尝试使用Android应用程序。我真的不想为每个Class
请求和响应编写这么多bean http
。
在Js
中,json只是一个Js
对象。在python
中,Json转换为Dictionary
。
所以在java中,为什么不将json
转换为Map
?这样我们就可以省略这些bean类。似乎每个人都说:使用Gson
和bean类来解析Json,但为什么呢?
问题:为什么Json要Java Bean,不要在android中映射?
答案 0 :(得分:1)
简单转换json到map没有任何好处。将json转换为静态类时,好处开始出现。 如果你不想创建许多java bean,请查看Kotlin。您可以非常轻松地创建新bean:
data class Student(val age: Int, val name: String, val surname: String)
答案 1 :(得分:0)
显然你没有考虑ORM优势=)
实际上,如果您创建Map<String,Object>
实例,可以将Json解析为Map。
但你可以像使用Map一样使用你的Json,所以使用Map并没有给你带来任何好处。
如果您的项目非常小,可能使用地图或对象获取值没有太大区别。可能是地图实施会更快。
但想象你有严肃的项目。例如,您必须获得有关电影的一些信息。你有很好的api,它给你Json的电影列表。您应该将其保存在您的应用中。 所以在这种情况下你的典型行动是:
List<Map<String>>
在其他情况下使用ORM
List<Films>
库GSON
list.get(i).save()
Sugar ORM
,即可将数据库存储在数据库中
醇>
它只是节省了时间!
答案 2 :(得分:0)
TL; DR:Java是一种静态类型语言,而Python则不是。
您可以将JSON响应解析为Map,但是会丢失编译器检查。地图的内容只是运行时,如果你的代码是嵌套地图,你的源很快就会难以阅读。
如果您创建域对象并让它们由JSON填充,则代码会辐射其意图,以及它背后的模型。
模型的变化将反映在整个来源中,这可以帮助那些不太了解您的来源的人,甚至可以帮助您在一段时间内没有触及它。