json模式到目标c - 模型类生成

goa*_*ane 15 iphone rest schema json objective-c

嗨堆栈溢出的人

我正在编写一个通过REST与JSON连接到Web服务的iphone应用程序.我想从我的Web服务提供的json模式生成目标c中的模型类,有点像使用asoap,xml和wsdl组合的wsdl2objc.

看起来这个问题并不多

我在http://code.google.com/p/bkjsonschema/上尝试了一些名为jsonschema2objc.rb的内容,但它甚至在最简单的json架构上给出了错误,在这里找到了一个:http://en.wikipedia.org/维基/ JSON#模式

我收到此错误:
使用临时文件/var/folders/rN/rNw33pkyHVeNG+-IesdU+k+++TI--Tmp-/jsonschema2objc.8WRkBSQo !!! 索引Product处的对象定义具有未知类型

所以这是我的两个问题:

  • 你们知道有什么好的工具来实现jsonchema =>客观c课吗?
  • 你知道这个错误在我的./jsonschema2objc.rb中的含义吗?

谢谢!

All*_*ian 12

在Mac Appstore中有一个非常好用的工具叫做JSONModeler(现在它已经停产),但同样的人制作了JSON Accelerator,这是同一个程序的演变.它真的很好(而且便宜)并且它生成了Objective-C,Java和Python代码(JSONModeler也支持Coredata类和模式,我不知道它们是否仍然支持它在新的中).


Tob*_*ias 0

如果您找不到第三方工具,您可以接近以下想法。

JSON 给你返回一个类似于加载 plist 的字典?您可以实现保存字典并覆盖 NSObject 的两个方法的包装类:

   -(BOOL) respondsToSelector:(SEL)selector
   -(id) performSelector:(SEL)selector
Run Code Online (Sandbox Code Playgroud)

如果选择器的名称在字典中,它会响应选择器,并且在执行选择器时,它返回对象,如果该对象是字典,它会将该字典包装在包装类中并返回该对象。

现在,这将不允许您拥有良好的类型信息,但您将能够像这样深入字典:

NSValue *universalGravity = (NSValue*) [[[jsonResponds settings] universal] gravity];
Run Code Online (Sandbox Code Playgroud)

只是我在阅读您的问题时想到的一个想法,如果您找不到已经实现您正在寻找的功能的第三方,那么它可能是一个快速、足够好的解决方案。