2012-01-19 81 views
0

我正在实施一个IntentService,我将用它来执行REST风格的Web服务调用,然后计划使用sendBroadcast来广播结果。IntentService JSON to Object Conversion

我从Web服务调用接收JSON。

当我收到JSON字符串后,我不确定应该在哪里解析文本并将其转换为对象(使用GSON)。我会更好地制作所有的域对象Parcelable,并发送广播中的对象,或只发送JSON文本,并在实际需要对象时将其转换?任何其他建议?

谢谢。

回答

0

这是个人喜好的问题,但我只写了自己的类来序列化和反序列化JSON字符串和模型对象。与使用一些类似ORM的工具相比,编写代码可能有一点点工作量,但我发现它可以很好地查找错误或更新键或嵌套层次结构。

对于每个模型对象,我有一个Translator类。例如Thing和ThingTranslator。这样,我可以在各个活动之间传递字符串,并且我有一个可以序列化和反序列化的位置,所以如果有任何错误或需要更新的东西(例如,服务更改对象模式等)一个地方看。

+0

谢谢。我并没有太注意将JSON解析成对象的方法,因为我正在执行转换的地方,特别是在使用IntentService时。我应该广播一个对象,并在使用点进行转换,或在IntentSerice中进行转换,并广播对象(或其他方法)。 – Steve

+0

我不知道我是否理解这个问题。如果它是 - 我应该去Parcelable或者只是手动序列化/反序列化我的对象,我会去后者。我所描述的原因是我不希望我创建的每个模型类都具有类中的分段逻辑。我是SRP和代码简单性的强力支持者,所以我的模型对象只不过是模型。序列化,验证等都是在外部完成的。 Thing具有代表Thing的目的的属性和方法,ThingTranslator和ThingValidator和ThingProvider完成他们的具体任务,等等 – Rich