在 iPhone 上使用哪个 json 库来使用 gson/jackson 生成的 json

发布于 2024-12-11 14:02:11 字数 658 浏览 0 评论 0原文

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

  • 服务器端数据 api - gson/jackson lib(pojo 到 json)
  • Android 端 - gson/ jackson lib(json 到 pojo)
  • Iphone 端 - 我用谷歌搜索 &发现有一堆框架Jsonkit、json-framework、touch json等等

问题

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

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

  • 还有其他陷阱吗?

注意:我知道 PhoneGap、titanuim 和一些等价物 - 但对它们不感兴趣。 Json 是一种通用格式,但我之前遇到过跨库问题 - 因此,我尝试向有该主题经验的人了解,

谢谢!

I need to build a java based JSON data API that will be accessed from mobile devices: Android, Iphone... I have narrowed down to these:

  • Server side data api - gson/jackson lib (pojo to json)
  • Android side - gson/jackson lib (json to pojo)
  • Iphone side - I googled & found that there are a bunch of frameworks Jsonkit, json-framework, touch json etc etc.

Question:

  • Can someone make a recommendation on the iphone side json library? The gson/jackson generated json output of the data api, must be consumable from iphone without any special tweaks to json structure

  • Is there any java Collection type that I should stay away from(on server side) to ensure the json is directly convertible to objective c objects?

  • Any other gotchas?

Note: I am aware of PhoneGap, titanuim & some equivalents - but not interested in them. Json is meant to be a universal format, but I have had cross-library issues earlier - hence this attempt to understand from people with prior experiance on the subject

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

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

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

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

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

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

祝你编码愉快! ;P

  • I've been using RestKit Library in an iPhone App Project.
    It is a nice framework that supports HTTP request/response handling with (mostly REST) servers, JSON/XML parsers to help you with data translation and a JSON <-> Object Mapping system.

    It may supply your iPhone server communication needs (making requests to the server and receiving JSON responses from server and converting each of them into objective-c objects).

  • For RestKit, it only matters the objects of your JSON file. So you are free to use any class or collection in your server as far as you generate a valid JSON file as response.

  • It took me some time to learn how to use RestKit properly in my applications. But when you get used to it, it definitely saves you time, because it hides you the complexity of parsing JSON files for every request made to server. You are right in trying to pick a good JSON data handling API for your application.

    Another good thing about RestKit is its community. It has a GitHub, a Google Groups and an IRC channel. If you plan to use it as a framework, assigning to its mailing list is definitely a good idea.

Have a nice coding! ;P

仙气飘飘 2024-12-18 14:02:11

在 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)
}

One of the best libraries to parse JSON in swift is EVReflection.
It offers a very easy installation using CocoaPods or you can just download it and add to your project.

Usage is very easy and it works like GSON or Jackson in Android/Java.

Example using 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)
}
孤蝉 2024-12-18 14:02:11

就我个人而言,我一直在使用 Stig 的 json-framework 进行 iOS 开发,效果非常好。您可以在此处下载它。

Personally I've been using the json-framework by Stig for my iOS development and works great. you can download it here.

如若梦似彩虹 2024-12-18 14:02:11

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)
}

OCMapper is similar to GSON, it has the ability to automatically map all fields and is simple to use. It supports both objective C and 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)
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文