-1

NSJSONSerializationサーバーから特定の api を実装しようとすると null が返されますが、サーバーからの他の api は正常に動作します。web で api を試したときに json タイプのデータが返され、json ビューアーでもチェックしましたが、機能しました結構です、NSDataまたいくつかのデータを返します。誰か助けてくれませんか?

NSString *urlString = @"url";        
NSURL *url = [NSURL URLWithString:urlString];
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:url];
_dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

if(error != nil){

    NSLog(@"JSON Error: %@", error);
    return;
}

上記のコードを試してみました。

---編集済み ----- サーバーが応答とともに無効な文字を送信していたため、サーバー側からの問題であったため、json バリデーターでは渡されましたが、実際のプログラムでは渡されませんでした。したがって、質問を閉じます。

4

2 に答える 2

2

問題は、URLのエスケープ シーケンスであり、それらをエスケープしていません。これらのシーケンスを適切にエスケープする必要があります。

NSString *urlString = @"url";        
NSString *encodedString = [urlString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL *url = [NSURL URLWithString:encodedString];
  1. ドキュメンテーションを見てください。
  2. Escape Sequencesも確認してください。

これを試して :

NSString *urlString = @"url";        
NSURL *myUrl = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
于 2013-07-11T13:14:28.023 に答える
1

「 json 」はコンテンツを含む実際のファイルではないため、使用できるように作成して NSURLConnectionリクエストしJSONますNSURLRequestdataWithContentsOfURL:

于 2013-07-11T13:10:21.913 に答える