8

モバイルデバイス(Android、iPhone ...)からアクセスするJavaベースのJSONデータAPIを構築する必要があります。これらに絞り込みました。

  • サーバー側のデータAPI-gson/jackson lib(pojo to json)
  • Android側-gson/jackson lib(jsonからpojo)
  • iPhone側-グーグルで検索したところ、Jsonkit、json-framework、touchjsonなどのフレームワークがたくさんあることがわかりました。

質問

  • 誰かがiphone側のjsonライブラリで推奨を行うことができますか?データAPIのgson/jacksonで生成されたjson出力は、json構造に特別な調整を加えることなくiphoneから使用できる必要があります

  • jsonがObjectiveCオブジェクトに直接変換できるようにするために(サーバー側で)遠ざける必要があるJavaコレクションタイプはありますか?

  • 他の落とし穴はありますか?

注:私はPhoneGap、titanuim、およびいくつかの同等のものを知っていますが、それらには興味がありません。Jsonは普遍的な形式であることが意図されていますが、私は以前にライブラリ間の問題を抱えていました-したがって、この主題について以前に経験を積んだ人々から理解しようとしています

ありがとう!

4

4 に答える 4

8
  • 私はiPhoneアプリプロジェクトでRestKitライブラリを使用しています。これは、(主にREST)サーバー、データ変換を支援するJSON / XMLパーサー、およびJSON<->オブジェクトマッピングシステムを使用したHTTP要求/応答処理をサポートする優れたフレームワークです。

    iPhoneサーバーの通信ニーズを提供する場合があります(サーバーにリクエストを送信し、サーバーからJSON応答を受信し、それぞれをObjective-Cオブジェクトに変換します)。

  • RestKitの場合、JSONファイルのオブジェクトのみが重要です。したがって、応答として有効なJSONファイルを生成する限り、サーバー内の任意のクラスまたはコレクションを自由に使用できます。

  • アプリケーションでRestKitを適切に使用する方法を学ぶのに少し時間がかかりました。しかし、それに慣れると、サーバーに対して行われるすべてのリクエストに対してJSONファイルを解析する複雑さが隠されるため、間違いなく時間を節約できます。あなたは、アプリケーションに適したJSONデータ処理APIを選択しようとしています。

    RestKitのもう1つの良い点は、そのコミュニティです。GitHub、Googleグループ、IRCチャネルがあります。フレームワークとして使用する場合は、メーリングリストに割り当てることをお勧めします。

素敵なコーディングを!; P

于 2011-10-25T17:32:39.483 に答える
2

JSONをswiftで解析するのに最適なライブラリの1つは、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

個人的には、iOS開発にStigのjson-frameworkを使用しており、うまく機能しています。こちらからダウンロードできます。

于 2011-10-25T16:30:31.003 に答える
0

OCMapperはGSONに似ており、すべてのフィールドを自動的にマップする機能があり、簡単に使用できます。ObjectiveCと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 に答える