8

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

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

问题

  • 有人可以在 iphone 端 json 库上提出建议吗?gson/jackson 生成的数据 api 的 json 输出,必须可以从 iphone 使用,无需对 json 结构进行任何特殊调整

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

  • 还有其他陷阱吗?

注意:我知道 PhoneGap、titanuim 和一些等价物——但对它们不感兴趣。Json 旨在成为一种通用格式,但我之前遇到过跨库问题 - 因此试图从对该主题有经验的人那里理解

谢谢!

4

4 回答 4

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

    它可以满足您的 iPhone 服务器通信需求(向服务器发出请求并从服务器接收 JSON 响应并将它们中的每一个转换为objective-c 对象)。

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

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

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

有一个很好的编码!;P

于 2011-10-25T17:32:39.483 回答
2

快速解析 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)
}
于 2017-01-18T14:15:34.000 回答
1

就我个人而言,我一直在使用 Stig 的 json-framework 进行 iOS 开发并且效果很好。你可以在这里下载。

于 2011-10-25T16:30:31.003 回答
0

OCMapper与 GSON 类似,具有自动映射所有字段的能力,使用简单。它同时支持目标 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)
}
于 2015-06-15T00:34:09.117 回答