在iphone上使用哪个json库来消耗gson / jackson生成的json

时间:2011-10-25 16:22:11

标签: iphone json json-framework jsonkit

我需要构建一个基于Java的JSON数据API,可以从移动设备访问:Android,Iphone ......我已经缩小到这些:

  • 服务器端数据api - gson / jackson lib(pojo to json)
  • Android方面 - gson / jackson lib(json to pojo)
  • Iphone方面 - 我用Google搜索&发现有一堆框架 Jsonkit,json-framework,touch json 等等。

问题

  • 有人可以在iphone端json库上推荐吗? gson / jackson生成数据api的json输出,必须可以从iphone中获取,而不需要对json结构进行任何特殊调整

  • 是否有任何java Collection类型我应该远离(在服务器端)以确保json可以直接转换为目标c对象?

  • 还有其他陷阱吗?

注意:我知道PhoneGap,titanuim&一些等价物 - 但对它们不感兴趣。 Json本来是一种通用的格式,但我之前遇到过跨库问题 - 因此这种尝试可以从之前对该主题进行过实验的人那里了解

谢谢!

4 个答案:

答案 0 :(得分:8)

  • 我一直在iPhone App Project中使用RestKit库。 它是一个很好的框架,支持HTTP请求/响应处理(主要是REST)服务器,JSON / XML解析器,以帮助您进行数据转换和JSON< - >对象映射系统。

    它可能会提供您的iPhone服务器通信需求(向服务器发出请求并从服务器接收JSON响应并将每个响应转换为objective-c对象)。

  • 对于RestKit,它只对您的JSON文件的对象很重要。因此,只要您生成有效的JSON文件作为响应,就可以自由地使用服务器中的任何类或集合。

  • 我花了一些时间学习如何在我的应用程序中正确使用RestKit。但是当你习惯它时,它肯定会节省你的时间,因为它隐藏了每次向服务器发出请求时解析JSON文件的复杂性。您正试图为您的应用程序选择一个好的JSON数据处理API。

    RestKit的另一个好处是它的社区。它有一个GitHub,一个Google Groups和一个IRC频道。如果您打算将其用作框架,分配到其邮件列表绝对是一个好主意。

有一个很好的编码! ; P

答案 1 :(得分:2)

在swift中解析JSON的最好的库之一是EVReflection。 它使用CocoaPods提供了非常简单的安装,或者您只需下载它并添加到您的项目中即可。

使用非常简单,就像Android / Java中的GSON或Jackson一样。

使用Alamofire的例子:

class User : EVObject{
    // EVReflection does not support optionals!
    // So you have to not declare any optional vars
    var name = ""
    var surname = ""
}

Alamofire.request("Your API URL").responseString{
    response in
        let resString = response.result.value
        // assuming that resString = "{'name' : 'john', 'surname' : 'Doe'}"
        let user = User(json : resString)
}

答案 2 :(得分:1)

我个人一直在使用Stig的json-framework进行iOS开发,效果很好。你可以下载它here

答案 3 :(得分:0)

OCMapper与GSON类似,它能够自动映射所有字段并且易于使用。它支持Objective C和Swift:

let request = Manager.sharedInstance.request(requestWithPath("example.com/users/5", method: .GET, parameters: nil))

request.responseObject(User.self) { request, response, user, error in
    println(user.firstName)
}