java - 为什么不解析http到Map?

时间:2017-03-13 08:49:44

标签: java android json

我是Java的新手,现在正在尝试使用Android应用程序。我真的不想为每个Class请求和响应编写这么多bean http

哦,天啊!这么多Bean Class。

Js中,json只是一个Js对象。在python中,Json转换为Dictionary

所以在java中,为什么不将json转换为Map?这样我们就可以省略这些bean类。似乎每个人都说:使用Gson和bean类来解析Json,但为什么呢?

问题:为什么Json要Java Bean,不要在android中映射?

3 个答案:

答案 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的电影列表。您应该将其保存在您的应用中。 所以在这种情况下你的典型行动是:

  1. 将其解析为List<Map<String>>
  2. 为它创建数据库。
  3. 创建大量用于在数据库中插入/更新/删除电影的方法。别忘了转换一些非字符串值,因为你有Map只存储字符串。
  4. 在其他情况下使用ORM

    1. 制作课程电影。
    2. 使用类似List<Films>
    3. 的内容直接从Json获取GSON
    4. 只需使用list.get(i).save()
    5. 之类的内容轻松调用Sugar ORM,即可将数据库存储在数据库中

      它只是节省了时间!

答案 2 :(得分:0)

TL; DR:Java是一种静态类型语言,而Python则不是。

您可以将JSON响应解析为Map,但是会丢失编译器检查。地图的内容只是运行时,如果你的代码是嵌套地图,你的源很快就会难以阅读。

如果您创建域对象并让它们由JSON填充,则代码会辐射其意图,以及它背后的模型。

模型的变化将反映在整个来源中,这可以帮助那些不太了解您的来源的人,甚至可以帮助您在一段时间内没有触及它。