0

私はjsonが初めてで、これを行う方法を混乱させています。私は変換する必要があるこの基本的な情報を以下に持っています

    "trailer":
         "window":"broken"
         "sidesteps":"dent"
    "tractor":
        "window":"craked"
        "sidesteps":"missing"
     "tire":
        "tire1":
            "pressure":"120"
            "rim":"good"
         "tire2":
            "pressure":"120"
            "rim":"good"
4

2 に答える 2

3

textFieldsからフェッチしたすべての値から辞書を作成します。このようになります、

NSDictionary *dictionary = @{@"trailer":@{@"window":@"broken", @"sidesteps":@"missing", @"tractor": @{@"window":@"broken",@"sidesteps":@"missing"}, @"tire":@{@"tire1" : @{@"pressure" : @"120", @"rim":@"good"}}}};

出力:

dictionary =   {
        "trailer": {
            "window": "broken",
            "sidesteps": "missing",
            "tractor": {
                "window": "broken",
                "sidesteps": "missing"
            },
            "tire": {
                "tire1": {
                    "pressure": "120",
                    "rim": "good"
                }
            }
        }
    }

を使用NSMutableDictionaryして、同様の構造を動的に作成できます。複数の可変辞書を作成し、それを別の辞書のオブジェクトとして追加して、上記の結果を得ることができます。

JSONデータに変換するには、これを行うことができます。

NSError *error;
NSData *postData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];

データを表示するために文字列に変換する場合は、

NSString *jsonString = [[NSString alloc] initWithData:postData encoding:NSStringEncodingConversionAllowLossy];
NSLog(@"jsonString = %@", jsonString);

このpostbodyをhttpリクエストに設定してサーバーに渡す場合は、次のように設定できます。

[urlRequest setHTTPBody:postData];
于 2013-01-13T20:33:41.600 に答える
1

これが正当な JSON ではなく、単なる図式表現であることを知っていると仮定すると、ネストされた NSDictionary オブジェクトのセットを表します。外側のディクショナリには、「trailer」、「tractor」、および「tire」というキーが含まれており、それぞれが NSDictionary に対応しています。"trailer" の NSDictionary には "window" と "sidesteps" というキーがあります。他のものも同様で、「タイヤ」だけが別のレベルの NSDictionary ネストを持っています。

テキストフィールドから値を取得することに関しては、あなた次第です。UIデザインはどのようなものですか?それらが固定フィールド (キー値は常に​​同じ) の場合、ユーザーにリスト内の複数のテキスト フィールドに入力させることができます。

于 2013-01-13T20:25:51.003 に答える