2009-05-30 6 views
5

httpリクエストを作成しようとしています。iphoneでBrautaset Jsonフレームワークを使用するとエラーが発生する

NSString *urlString = [NSString stringWithString:@"http://www.foo.se/bartojson.php?venue=47497"]; 


NSLog(@"retain %d urlString %@", [urlString retainCount], urlString); 
    NSURL *url = [NSURL URLWithString:urlString]; 
    [urlString release]; 

    NSString *jsonString = [NSString stringWithContentsOfURL:url]; 
    NSDictionary *httpResult = [jsonString JSONValue]; 

結果は次のようになり、ブラウザでページを呼び出す:

{「名」:「テスト」、「説明」:コードは次のようになります「これはテストです」 "レビュー":[{"グレード": "5"、 "説明": "ニース"}、{"グレード": "3"、 "説明": "非常に良い!"}]}

しかし、コードから呼び出すとき、私はこれを取得:

エラードメイン= org.brautaset.JSON.ErrorDomainコード= 3のUserInfo = 0x582640「キーの期待Object値:レビューは、」

に問題があるようですレビューは新しい辞書を指しています。このエラーメッセージを理解するのを手伝ってください。

答えて

6

よく私は私のエラーの理由を見つけました。結果内の愚かなウィンドウの改行はJSONValue呼び出しを失敗させました。すべての\ rを削除し、すべてのビオラは魅力のように動作します!

2

タイプミスの場合はDunnoですが、「Nice」の後にカンマがあるため、あなたの例は有効なJSONではありません。 JSONでは、配列や辞書(「オブジェクト」)の末尾にカンマを使用することはできません。 JSON.frameworkは確かにそれについてぼんやりとしています。

ところで、現在の安定版のフレームワークを使用している場合、便利な方法を使用している場合は、常にコンソールログに完全なスタックのスタックが表示されます。それ以外の場合は、パーサーオブジェクトに完全なスタックトレースを依頼して、それを自分で印刷することができます。

+0

こんにちはStig!入力ミスについては申し訳ありません。フレームワークに何も問題はありませんでした。それは、隠されたウィンドウの改行を返すサーバーでした。 – jakob

関連する問題