0

JSONModel を使用してそのような JSON を解析する方法は?

[{
    "Value": "Cat",
    "Id": 1
}, {
    "Value": "Dog",
    "Id": 2
}, {
    "Value": "Elephant",
    "Id": 3
}]

このようなものがあった場合:

{
    animals: [{
        "Value": "Cat",
        "Id": 1
    }, {
        "Value": "Dog",
        "Id": 2
    }, {
        "Value": "Elephant",
        "Id": 3
    }]
}

問題ありません。私はただ使用します:

@property (strong, nonatomic) NSArray <AnimalModel> *animalsArray;

しかし、JSON ファイルに「animals」キーがない場合はどうすればよいでしょうか?

4

3 に答える 3

0

以下の 2 番目の json 応答のコードになります。

 id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

    NSArray *array = (NSArray *)jsonObject;
    for(int i=0;i<[array count];i++)
    {
        dict = [array objectAtIndex:i];
        [valueArray addObject:[dict objectForKey:@"Value"]];
        [idArray addObject:[dict objectForKey:@"Id"]];
    }
于 2014-10-16T13:24:16.063 に答える
0

モデルをコレクションとして作成してみることができます

NSArray *jsonArray = //Array of Dictionaries
NSMutableArray *arrayOfModels = [AnimalObject arrayOfModelsFromDictionaries:jsonArray];
于 2015-07-08T12:07:41.700 に答える
0

2番目ではなく最初のモデルが必要なため、オブジェクトキーはありませんが、キーと値のペアを持つ値配列があります.完全なJSONはNSDictionaryではなくNSArrayとして初期化されます。次を試すことができます:

-(void)loadJSON{
  /* * * * NSURLRequest to fetch the json in NSData format * * */

 //Parsing JSONData 
 NSError *err;
 if(responseData != nil){

    NSArray *JSONParser = [NSJSONSerialization jsonObjectWithData:responseData options:kNilOptions error:&err];
    if(!err){

          [key1MutableArray addObject:[JSONParser valueForKey:@"Value"]];
          [key2MutableArray addObject:[JSONParser valueForKey:@"Id"]];           
     }else{
          NSLog(@"JSON Error: %@", err.localisedDescription);
     }
  }else{
          NSLog(@"responseData is NIL");
  }
 }
        NSLog(@"%@", key1MutableArray);
}       NSLog(@"%@", key2MutableArray);

これが役立つかどうか教えてください。

于 2014-10-16T06:24:43.027 に答える