1

Iam は iOS 開発の初心者です。このjsonを埋めたい

"{
    "form_name":"login_form_mobile",
    "user_login":"mark wallet",
    "password":"123456",
    "dispatch":{"auth.login":"Sign in"}
}
"

NSDictionary に変換して、AFNetworking を使用する URL の投稿で使用します。

私はこのように辞書を埋めます

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:@"login_form_mobile",@"form_name",@"markwallet",@"user_login",@"123456",@"password",@"{ \" auth.login \" : \" Sign in \" }",@"dispatch", nil];

今、私は2つの問題を抱えています2-アプリを実行して、辞書がどのように満たされているかを確認すると、次のように表示されます

 {
    dispatch = "{ \" auth.login \" : \" Sign in \" }";
    "form_name" = "login_form_mobile";
    password = 123456;
    "user_login" = markwallet;
}

a-キーとその値が等しいので、それが必要です: not =
b- password 、 123456 、 markwallet のように "" を持たない単語があります。理由がわかりません
c-また、ディスパッチと it の値が最初に来る理由もわかりません。

編集:

この新しいコードを使用しました。

NSDictionary *dic = [[NSDictionary alloc]initWithObjectsAndKeys:@"Sign in",@"auth.login", nil];

NSArray *keys = [NSArray arrayWithObjects:@"form_name",@"user_login",@"password",@"dispatch",nil];

NSArray *objects = [NSArray arrayWithObjects:@"login_form_mobile",@"markwalletz",@"123456",dic,nil];

NSMutableDictionary * params1 = [[NSMutableDictionary alloc]init];
params1 = [NSMutableDictionary dictionaryWithObjects:objects forKeys:keys];

しかし、デバッグでparams1の値を見ると

{
    dispatch =     {
        "auth.login" = "Sign in";
    };
    "form_name" = "login_form_mobile";
    password = 123456;
    "user_login" = markwalletz; }

そして、これは、質問の上部に記載されているように、必要なものとは異なります。この辞書でリクエストを送信すると、BAD Request が返信されます。

4

4 に答える 4

1

「jsonString」変数は次のように形成する必要があります。

NSString *jsonString = @"{\"form_name\":\"login_form_mobile\",\"user_login\":\"mark wallet\",\"password\":\"123456\",\"dispatch\":\{\"auth.login\":\"Sign in\"}}";

次に、上記のコードを使用します。

NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data 
                                                options:NSJSONReadingAllowFragments 
                                                  error:nil];
NSLog(@"DIC %@",dic);

出力します:

DIC {
dispatch =     {
    "auth.login" = "Sign in";
};
"form_name" = "login_form_mobile";
password = 123456;
"user_login" = "mark wallet";
}
于 2013-05-02T17:39:47.443 に答える
0

json 文字列が「jsonString」と呼ばれる NSString 変数にある場合:

NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data 
                                                    options:NSJSONReadingAllowFragments 
                                                      error:nil];

したがって、「dic」変数には解析されたjsonが含まれます。

于 2013-05-02T15:40:08.447 に答える