0

従業員オブジェクトを JSON ファイルに変換する次のコードがあります。

  NSDictionary *dict=[NSDictionary dictionaryWithObjectsAndKeys:emp.empName,@"name",emp.empId,@"empid",emp.empAddress,@"address",emp.mobile,@"mobile",nil];

    NSData *jsonData=[NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];
    NSString *str=[[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding];
    NSLog(@"data =%@",str);

このコードを使用して、JSON ファイルを取得しています。しかし、このjsonをhttprequestボディとして送信したいのですが、これには次のコードがあります:

      NSData *requestBody=[[NSString stringWithFormat:@"%@",str] dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:requestBody];
NSURLConnection *conn=[[NSURLConnection alloc]initWithRequest:request delegate:self];

しかし、サーバー側で解析できない間違ったjsonを取得しています。この問題の解決策を提案してください。JSONデータを直接送信すると、サーバー側で次のjsonが間違っています:

{ '{\n  "name" : "vx",\n  "mobile" : "8888888",\n  "empid" : "96",\n  "address" : "addre"\n}': '' }
4

1 に答える 1

1
  1. NSJSONWritingPrettyPrinted を使用しないでください。空白は必要ありません。

  2. 使用する...

NSString *str=[[[NSString alloc]initWithData:jsonData encoding:NSUTF8StringEncoding] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

辞書が正しく、サーバー側の解析が正しいと仮定すると、これはうまくいくはずです。

また、結果またはデバッグ ログを今後投稿してください。つまり、送信した実際のリクエストと、サーバーから取得した実際のレスポンスです。

于 2012-05-31T10:18:39.417 に答える