java bean object to android json object



我有一个严重依赖Json Web Services的Android应用程序。所以我有很多基于json格式的请求和响应。基本思想是我有一个请求,它获取了一个 bean 对象,例如 HotelSearchData 并且该请求知道如何将该 bean 转换为 json map\ 对象,然后将该JSONObject写入网络(使用 httphttps (。

自然我需要从json转换和转换.目前,我以一种糟糕但快速的方式做到这一点:

  1. 获取object
  2. 有一个 KEY_XXXX 形式的 const 列表,其中 xxxx 是键的名称,值是字符串,该字符串将成为 json 对象中的实际键。
  3. 使用密钥,如以下示例所示:base.put(KEY_FROM_DATE, hotelSearchData.getFromDate())
  4. 对于我自然使用的 ArrayList\ 数组JSONArray,就我而言,json中的每个{}都是一个 bean 对象,我需要为它创建一个 bean。

问题是这样,对于未来的发展不是那么好(至少......每个新请求都需要我新的 bean,其中一些可能内部具有相同的信息,从而导致信息和代码重复。

每个新请求都需要我创建新的 KEY final,有时从具有类似键的其他请求复制 - 愚蠢 :-/

对于第一项,除了优化我将要做的事情并将共享代码 bean 划分为我可以稍后扩展的较小项目之外,我看不到任何优雅的解决方案。

但是对于请求\响应,我想到了一些东西,但我不确定它有多优雅......我知道谷歌有一个不同的json库,它使用反射来serializedeserialize JSONObject s。我想使用注释和反射来做serializationdeserialization,在成员名称与成员值的 json 键不同的情况下,annotation 应该会有所帮助。此外,对于ArrayList<?>,它的类型未保存在字节码中,因此在编译后不存在,因此您可以指定基本类型或完整的包名称。

这样,一旦我在某些annotations的帮助下创建了 bean(也许python脚本 \ant 脚本来自动化它的一部分?我可以做豆子,如果明天我搬到xml或其他东西(binary(,我可以创造不同的serializerdeserializer并完成它。

我希望听到你对它的意见,或者其他一些解决方案,得到一些灵感,我对我当前的代码真的很失望...... :-(

你真的试过gson吗?它将完成您需要的事情,除了移动到 XML/二进制部分,但您可能会在代码中抽象它。任何 XML 序列化库都可能希望使用不同的注释,因此它不会是自动的。

相关内容

  • 没有找到相关文章

最新更新