JSON解析問題

私のコード:

NSString *jsonString;   

jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

// Create a dictionary from the JSON string
NSDictionary *results = [jsonString JSONValue];

NSLog(@"%@",jsonString);
// Build an array from the dictionary for easy access to each entry
NSArray *places = [results objectForKey:@"description"];

I am not getting the result i wanted. When I debug the code I am getting 2 key/value pair & 0 object for NSArray places.

2
追加された 著者 anjum,

3 答え

2つのキーと値のペアがあることは間違いありません。上位2つのキーは「予測」と「ステータス」です。したがって、まず予測の抽出が必要です(配列)。


NSArray *predictions = [results objectForKey:@"predictions"];

それを反復処理します。また、 "description"は文字列で、場所を取得するには "、"区切り記号を使用して分割する必要があることに注意してください。


for(NSDictionary *aPrediction in predictions) {
  NSString *description = [aPrediction objectForKey:@"description"];
  NSArray *placesInDescription = [description componentsSeparatedByString:@","];
}
1
追加された
「予測」の名前にタイプミスがありました
追加された 著者 viggio24,
コードをコピーして貼り付けた場合には、引用符の間にタイプミスがあります。名前を正しく綴らないと、返される配列はゼロになります。
追加された 著者 viggio24,
@anjumあなたを助けてくれた回答を受け入れてください。StackOverflowがどのように成長し、今後人々があなたを助けてくれるのでしょうか
追加された 著者 Nick Bull,
おかげで多くの作業!
追加された 著者 anjum,
申し訳ありませんが、私はあなたが説明したいものを持っていない。
追加された 著者 anjum,
まだ私はNSArrayの予測のための0オブジェクトをゲットしています
追加された 著者 anjum,

たぶん使用する必要があります:

NSArray *places = [results valueForKey:@"predictions"];
0
追加された
使用する:NSArray * places = [結果valueForKey:@ "予測"]; "objectForKey"ではなく..
追加された 著者 CarlJ,
まだ同じ。
追加された 著者 anjum,
0個の場所のオブジェクト。
追加された 著者 anjum,

私のためにJSONキットで問題なく動作します!

NSString *jsonString;   

      NSData *responseData = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"https://maps.googleapis.com/maps/api/place/autocomplete/json?input=solapur&sensor=true&key=AIzaSyC0K5UhV_BWmXhncIZEnbh-WG2RVQVgfdY"]];

      jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

     //Create a dictionary from the JSON string
      NSDictionary *results = [jsonString objectFromJSONString];

     //Build an array from the dictionary for easy access to each entry
      NSArray *places = [results valueForKey:@"predictions"];

      NSLog(@"places %@", places);
0
追加された
最後に試してみてください: rel="nofollow noreferrer"> gist.github.com/1752243
追加された 著者 CarlJ,
あなたはあなたのresponseDataをチェックしていただけますか?
追加された 著者 CarlJ,
JSONコーディングに使用するフレームワークSBJSONまたはJSONKit?
追加された 著者 CarlJ,
JSON Stringをオブジェクトに変換するためのJSONKitメソッド。 SBJSONを使いましたか?
追加された 著者 CarlJ,
objectFromJSONStringとは何ですか?
追加された 著者 anjum,
私はSBJSONではなく "JSON.h"をインポートしました。
追加された 著者 anjum,
私のアプリはobjectFromJSONStringのためにクラッシュしています。
追加された 著者 anjum,
私はJSONKit FrameWorkを使用しています
追加された 著者 anjum,
responseDataはうまくいきました。NSlogとIamがJson String全体を取得しています。
追加された 著者 anjum,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript