1

私はたくさん検索しましたが、多くの答えが見つかりましたが、必要な特定の答えは見つかりませんでした。これはとてもシンプルです。

ユーザータイプとは2つの異なる ものを取り、それらからjsonを作成してサーバーに送信したいと思います。NSString

私はこれを書きました:

-(id)stringToJason:(NSString*)stringData 
{
    NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding];
    id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    return json;
}

しかし、私には得られないことがあります。これは 1 つの nsstring を json として返します。

どうすれば2つの異なるものを取りNSStrings、それらから一緒にjsonを作成できますか? 言いましょう:(userName:me それぞれがテキストフィールドから来ている場合)

json は次のようになります。

"Username": "me",
    "Firstname": "r",
    "Lastname": "k",
4

1 に答える 1

4

次のような JSON を生成する場合:

{
   "Username":"me",
   "Firstname":"r",
   "Lastname":"k"
}

rとはテキストkフィールドから取得した値であり、次の行に沿ってメソッドを記述できます。

-(NSData*)jsonFromFirstName:(NSString*)firstName andLastName:(NSString*)lastName
{
    NSDictionary* dic = @{@"Username" : @"me", @"Firstname" : firstName, @"Lastname" : lastName};
    // In production code, _check_for_errors!
    NSData* json = [NSJSONSerialization dataWithJSONObject:dic options:0 error:nil];
    return json;
}

このメソッドを呼び出して、r( firstName) とk( lastName) の値を渡します。目的の値を持つ、目的の JSON の構造を持つ辞書を作成します。次に、NSJSONSerialization-dataWithJSONObject:options:errorセレクターを使用して、辞書を JSON データ オブジェクト (NSData オブジェクトに格納されます) に変換します。これで、サーバーに送信するデータができました。

メソッドの最初の行で作成された辞書は、必要に応じて拡張することができ、文字列以外 (数値、配列、その他の辞書など) を渡すこともできます。

于 2013-02-02T16:51:42.517 に答える