【发布时间】:2011-06-16 20:01:11
【问题描述】:
我有一个 Web 服务类,它成功地将我的 JSON 从提要中提取到 String。我想用 Gson 把它解析成一个自定义类的List,但是解析搞砸了。
现在进行解析的代码如下所示: http://pastie.org/2079115。 包含 JSON。
我相信问题的发生是因为那层额外的
"article": { ... }, "article": { ... } ...
我可以在网上找到的几乎所有内容都告诉我按照上述方式进行操作,包括 Gson API。
问题在于,articles 变量最终是一个包含正确文章数量的列表,但每篇文章中的所有数据都为空。我玩弄了
的结构Type collectionType = new TypeToken<ArrayList<Article>>(){}.getType;
但任何更改最终都会导致文章变量为空,甚至不包含空文章。知道从这里去哪里吗?
作为参考,我的 Article.java 如下所示: http://pastie.org/2079165
【问题讨论】:
-
你有没有想过尝试像 Jackson 这样的不同库?
-
改用 Jackson 对这个问题没有好处。 Jackson 目前没有自动解包对象的功能,任何使用 Jackson 的数据绑定解决方案都与使用 Gson 的类似数据绑定解决方案基本相同。
-
我真的希望框架没有添加这些(通常是无用的)额外包装层——它们似乎是开发人员混淆的第一个来源。库是否应该支持这样的包装是一把双刃剑:支持越多,这个“特性”就越被使用......
-
归根结底,我想最重要的是为开发人员提供补偿工具。在这种情况下,我正在移植一个使用 Objective Resource 的 iPhone 应用程序,它的工作原理就像一个魅力,并且在边缘情况下有很好的文档记录。在文档和示例方面,Droid dev 和 Gson 似乎都很稀疏,因此更难弥补这些东西。这是我的第一个 Android 应用程序,学习曲线非常陡峭。希望随着 Android 社区的成熟和占据主导地位,这些工具将变得更加全面。
标签: java android json parsing gson