我可以轻松找到以下工具:
但是,如果我想介入这个过程的中间并将我自己的变换器从JSON转到blah
模型类,会发生什么?
是否有一个能够很好地理解JSON的编程框架或工具,并且只是提供我可以以编程方式实现的钩子或回调,以便完成工作的后半部分,即吐出我自己的模型类风格?
我在这个问题背后的动机是我发现:http://jsonpack.com/ModelGenerators/ObjectiveC有助于生成依赖于JSONKit框架的ObjC模型类,但我想生成依赖于RestKit框架的ObjC模型类
答案 0 :(得分:2)
如果我理解正确,你可能正在寻找一个“SAX风格”解析器。也就是说,为解析器实现某种委托,该解析器从解析器接收解析事件并适当地处理这些事件。
因此,您的委托不是创建一个JSON表示,它是由NSArray,NSDictionary和NSString等组成的Foundation对象的层次结构,而是创建某个自定义类的一个或多个实例。
虽然这是可行的,但如果你有这样的“SAX样式”解析器(NSJSONSerialization不是),它肯定需要一些努力。请注意,您始终可以将Foundation层次结构“转换”为任何其他对象 - 例如Core Data模型对象。 (表示,从NSDictionary初始化对象)。但是,更精细的方法肯定更快。
我所知道的两个具有SAX样式API的Objective-C JSON解析器框架是SBJson https://github.com/stig/json-framework/和JPJson https://github.com/couchdeveloper/JPJson。
事实上,后一个解析器库(JPJson)显然是通过分离这两个任务来设计的:a)解析和b)执行语义动作。您可以从现有基类“语义操作”中继承子类,并创建自己的并覆盖“处理程序方法”,这些方法对应于处理解析事件。
我是JPJson的作者,目前正在更新它以适应新的clang编译器(C ++ 11)和Xcode。