【发布时间】:2017-06-24 13:37:00
【问题描述】:
我想创建一个库来执行身份验证工作(在请求中发送一些身份验证参数)并从 API 返回 json 响应。 JSON 通常表示一个字典数组,如下所示:
[
{"a": 1, "b": 2},
{"a": 3, "b": 1}
]
我在Python 中做了同样的事情,这很简单,我只返回一个dict,它内置在Python 中。
我想知道Java 的最佳方式是什么?以下是我考虑的一些方法:
- 返回将由用户处理的流。具体来说,我使用
java.net.HttpURLConnection,通过这种方法我将返回connection.getInputStream(),这将由用户处理。这种方法的缺点是用户需要完成大部分工作(读取流并将其转换为类似 json 的对象或其他)。好的部分是用户可以灵活地以他们喜欢的任何方式处理它,从类创建自定义对象,使用第三方json库或其他东西。通过这种方法,我不会强迫他们使用某些库,因为整个代码将使用 Java 内置功能。 - 使用第三方库,如
org.json或GSON并返回那种对象。这里的缺点是我会强制用户使用第三方库。 - 我可以为每种对象定义类,大概有 5-6 种类型。缺点是:我需要更多时间来实施解决方案,并且会强制用户使用我的对象。
困扰我的是 Python 开发人员经常使用 dict,而在 Java 中,开发人员通常更喜欢使用特定用户定义类的对象。所以,我无法得出最合适的方法。
【问题讨论】: