2

私はいくつかのデータを持っており、この構造でjsonファイルを作成する必要があります:

{"eventData":{"eventDate":"Jun 13, 2012 12:00:00 AM","eventLocation":{"latitude":43.93838383,"longitude":-3.46},"text":"hjhj","imageData":"raw data","imageFormat":"JPEG","expirationTime":1339538400000},"type":"ELDIARIOMONTANES","title":"accIDENTE"}

誰かが私のデータをこの構造のjsonファイルに入れる方法、または少なくともuがjson構造を作成する方法の例を教えてもらえますか?

編集

さて、私はいくつかのコードを書きました:

NSString *jsonString = @"[{\"eventData\":{\"eventDate\":\"Jun 13, 2012 12:00:00 AM\",\"eventLocation\":{\"latitude\":43.93838383,\"longitude\":-3.46},\"text\":\"hjhj\",\"imageData\":\"raw data\",\"imageFormat\":\"JPEG\",\"expirationTime\":1339538400000},\"type\":\"ELDIARIOMONTANES\",\"title\":\"accIDENTE\"}]";

    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *e;
    NSMutableArray *jsonList = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&e];
    NSLog(@"jsonList: %@", jsonList);

jsonListはjsonファイルになりました??? そして、それは正しい形式ですか?私がそれを印刷するときの原因は次のとおりです:

jsonList: (
        {
        eventData =         {
            eventDate = "Jun 13, 2012 12:00:00 AM";
            eventLocation =             {
                latitude = "43.93838383";
                longitude = "-3.46";
            };
            expirationTime = 1339538400000;
            imageData = "raw data";
            imageFormat = JPEG;
            text = hjhj;
        };
        title = accIDENTE;
        type = ELDIARIOMONTANES;
    }
)
4

3 に答える 3

13

Appleの" NSJSONSerialization"クラスはもう見ましたか?iOS5.0から利用可能になりました。

これを使用して、ObjectiveCオブジェクトをWebサービスに送信できるJSONデータストリームに変換できます。

5.0より古いOSをサポートしたい場合は、他の可能性があります(この関連する質問を参照してください)。

于 2012-06-22T13:32:32.153 に答える
3

iOS5以降のみをサポートする必要がある場合は、Michaelが言ったようにAppleのNSJSONSerializationを使用できます。以前のiOSバージョンでは、サードパーティのjson解析ライブラリを使用する必要があります(JSONKitをお勧めします。これが最速です)。

最終的には、JSONデータに必要なキー/値構造を使用してNSDictionaryを作成し、これらのメソッドの1つを使用して変換します。

于 2012-06-22T13:35:48.370 に答える
2

答えを編集しました:

NSJSONSerializationを使用してJSONオブジェクトを作成してください。JSONオブジェクトを作成するには、文字列を使用しないでください。のようなものを使用dictionaryWithObjectsAndKeys:して、それをJSONオブジェクトに変換します

NSDictionary *PostParams = [NSDictionary dictionaryWithObjectsAndKeys:
                             [value], [key], nil];

iOS6とXcode4.3を使用している場合は、

NSDictionary *PostParams = @{value, key};
于 2012-06-22T13:34:52.973 に答える