2013-04-07 64 views
0

我可以很容易找到工具:哪些工具提供了将JSON转换为模型类对象的钩子?

  • 变换JSON到CSHARP模型类
  • 变换JSON到objc模型类
  • 变换JSON来的POJO的Java

但是如果我正在寻找这个过程的中间步骤并将我自己的变压器从JSON推广到blah模型类,会发生什么?

是否有一个编程框架或工具可以很好地理解JSON,并简单地提供可以编程实现的钩子或回调函数,以便完成后半部分的工作,即吐出我自己的模型类风格?

我在这个问题背后的动机是,我发现:http://jsonpack.com/ModelGenerators/ObjectiveC这有助于生成依赖于JSONKit框架的ObjC模型类,但我想生成依赖于RestKit框架的ObjC模型类。

+0

编写自己的通用转换器代码比挂钩现有代码要容易得多 – Eonil 2013-04-07 03:18:07

+0

如果我听到有关工具和框架质量差的人回来,我肯定会滚动我自己也是从头开始分享它的,我总是喜欢首先评估社区中存在的东西,因为随着时间和可见性错误总是在任何代码中减少。 – pulkitsinghal 2013-04-07 11:57:17

回答

2

如果我理解正确,那么您可能正在寻找一种“SAX风格”解析器。也就是说,您为解析器实现某种委托代理,该解析器从解析器接收解析事件,并且它将适当地处理这些事件。

因此,代替创建一个由NSArray,NSDictionary和NSString等组成的基础对象的层次结构的JSON表示,而不是创建某个自定义类的一个或多个实例。虽然这是可行的,但如果你有这样一个“SAX风格”的解析器(其中NSJSONSerialization不是),它肯定需要一定的努力。请注意,您始终可以将基础层次结构“转换”为任何其他对象 - 比如核心数据模型对象。 (意思是,从NSDictionary初始化一个对象)。但是,更精细的方法肯定更快。

我知道其中有一个SAX风格的API的两个Objective-C JSON解析器框架是SBJson https://github.com/stig/json-framework/和JPJson https://github.com/couchdeveloper/JPJson

后一个解析器库(JPJson)其实很明显是通过将这两个任务分开来设计的:a)解析和b)执行语义操作。您可以从现有的基类“语义操作”中创建子类,并创建您自己的并覆盖与处理解析事件相对应的“处理程序方法”。

我是JPJson的作者,目前正在更新它以适应新铿锵编译器(C++ 11)和Xcode