在我正在使用的API中,我将某个部分作为普通JSON数组而不是普通键=>值对接收。它的愚蠢,但这是我必须处理的。按位置对象映射JSONArray
实施例:
{"build":29625,"list": [
[312218505,1000,624437010,21997878697,35228,0,0,0],
[186873474,0,0,0,0,-1,0,0]
...
]}
的问题越来越谷歌GSON到每个阵列位置到字段映射在正常对象。由于毫不奇怪,没有任何原生支持,所以我不得不推出我自己的解决方案:每个需要转换的“请求”实现一个CustomConvert接口,其中有convertToObjects()
和convertToJson()
方法。每个“条目”都有一组带有@ArrayPosition(number)
注释的字段。转换方法在两个列表之间转换。
由于这是丑陋的,有没有更好的方法来使用Google GSON甚至是另一个用于Java的JSON库?
呃,写一个gson串行器/解串器?你能举一个你正在收到的JSON的例子吗? – 2013-05-10 20:35:14
@Brian See编辑。和TMK的串行器/解串器它会搞乱其他东西,返回一个JSONArray – TheLQ 2013-05-10 21:04:14
你不写一个List /数组 - 你写一个对象包含一个'build'字段和'List'字段。将参数列表传递给MyObject的构造函数,以实例化每个参数并将其添加到List中。 (我假设你的JSON数组中的每个内部数组表示相同类型的对象) –
2013-05-10 21:08:22