0

返されたJSONの解析に少し問題があります。私はJSONの操作にかなり慣れていません。最初のJSON配列要素から会社名を取得しようとしています。NSMutabeArrayとNSMutableDictionaryの使用を混乱させているような気がします。私が得るものはnullです。私が間違っていることについて何か考えはありますか?

NSString *url = @"http://www.google.com/finance/info?infotype=infoquoteall&q=C,JPM,AIG,AAPL";

NSData* data = [NSData dataWithContentsOfURL: 
                [NSURL URLWithString: url]];

//parse out the json data
NSError* error;
NSMutableArray* json = [NSJSONSerialization 
                      JSONObjectWithData:data //1

                      options:kNilOptions 
                      error:&error];

NSString* companyName = [[json objectAtIndex:0] objectForKey:@"name"] ; //Where I need some help

NSLog(@"we got %@", companyName);
4

2 に答える 2

3

そのURLをブラウザにロードします。GoogleがJSONの前に//を付けているようです。NSJSONSerializationはそれにつまずいていると思います。これを試して

NSRange range = NSMakeRange(2, [data length] - 3);
NSData *noPrefix = [data subdataWithRange:range];

次に、それをパーサーに送信します。

于 2012-07-24T06:02:53.537 に答える
2

エラーオブジェクトを入れましたが、それを見たことがありません。持っていた場合は、データが破損していることがわかります。

Error Domain = NSCocoaErrorDomain Code = 3840 "The data couldn’t be read because it has been corrupted." (Invalid value around character 1.) UserInfo = 0x10030a8f0 { NSDebugDescription = Invalid value around character 1. }

このエラーを確認するために、optionsパラメーターの値を変更しました。私は持っています

NSMutableArray* json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers |NSJSONReadingAllowFragments error:&error];
于 2012-07-24T05:28:47.203 に答える