0

JSON オブジェクトを作成できる必要があります (iOS 5 の組み込みクラスを使用しています)。送信する必要がある JSON は次のとおりです。

 {"request_type":"<the request type (a string)>" "security_level":<the security level (an int)> "device_type":"<android or ios (a string)" "version":<the app version (android, ios on different version schemes) (a float)> "email":<the email address of the user sending the request (a string)> "blob":{<the contents of the actual request, encrypted/encoded according to the security level (a map)>}

私の問題は、最後の部分である「ブロブ」にあり、これは基本的に単なる別の JSON オブジェクトです。

 {"display_name":"Jack Bower", "email":"jackb@gmail.com", "password":"roflcopter"}

(パスワードは平文であることを忘れましょう)

NSDictionary を使用してすべてを作成できますが、最後の部分を追加する方法がわかりません。

私の推測では、NSDictionary を使用して最初のリクエストを作成します。次に、別の NSDictionary を使用して 2 番目の BLOB 要求を作成します。次に、その 2 番目の blob NSDictionary をオブジェクトとして最初の NSDictionary に追加します。

NSJSONSerialization は、私がやろうとしていることを理解できますか?

4

1 に答える 1

0

わかりました、今は午前 5 時だと思います。

答えは次のとおりです。

NSDictionary *blobData = [NSDictionary dictionaryWithObjectsAndKeys:
                             @"email",userEmail,
                             @"password",userPassword,
                      nil];
NSString *blobString = [[NSString alloc]
                        initWithData:[NSJSONSerialization dataWithJSONObject:blobData options:kNilOptions error:&error]
                        encoding:NSUTF8StringEncoding];
NSDictionary *requestData = [NSDictionary dictionaryWithObjectsAndKeys:
                             @"login",@"request_type",
                             0,@"security_level",
                             @"ios",@"device_type",
                             @"blob",blobString,
                             nil];
NSData *JSONRequestData = NULL;
if ([NSJSONSerialization isValidJSONObject:requestData]) {
        NSData *JSONRequestData = [NSJSONSerialization dataWithJSONObject:requestData options:kNilOptions error:&error];
}
else NSLog(@"requestData was not a proper JSON object");
于 2012-08-01T09:51:19.483 に答える