从json数据获取特定索引这样的学生姓名

时间:2018-04-23 07:59:32

标签: ios objective-c json

我在iOS中开发简单的应用程序,获取数据web api我的代码正确地返回了json数据但是当我想要特定的例如来自json的学生名称返回null。  这是我的数据:

{
Sudent( 
{
    {"id":"20",
    "name":"Alan",
    "email":"simpl@gmail.com",
    "phone":"1234567890",
    "location":"London"},
 {  
"id":"40",
    "name":"John",
    "email":"simpl@gmail.com",
    "phone":"1234567890",
    "location":"usa"},
"id":"50",
    "name":"Nora",
    "email":"simpl@gmail.com",
    "phone":"1234567890",
    "location":"kenya"}, 

})}

这里我的代码以json的形式获取数据,并存储了名为Student的的NSMutableArray:

-(void)proxydidFinishLoadingData:(id)data InMethod:(NSString*)method
{
    if ([method isEqualToString:@"getstudentdata"]){

       defaultDict = [[NSMutableDictionary alloc]init];
         [defaultDict addEntriesFromDictionary:[NSJSONSerialization JSONObjectWithData:[data dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil]];
         Student = [defaultDict objectForKey:@"data"];

    }
}

这个代码它工作正常并且正确并且返回了json数据,但问题是当我想获得特定索引,例如学生名称时,它不起作用,它返回null值。 完成这项工作的代码在这里:

NSMutableDictionary *response = [[defaultDict valueForKey:@"data"] mutableCopy];
    NSString *name = [[response valueForKey:@"name"]];
   ];

      NSLog(@"%@" ,name);

请帮助我获取学生姓名

1 个答案:

答案 0 :(得分:0)

您正在检查"姓名"键入"数据"关键,但实际上它存在于"学生"键。

Parse to Student对象并使用for循环逐个获取" name"关键价值。

使用此网站http://www.json4swift.com/创建模型。(只需在此处输入JSON响应)。

Var dataModelArray = [Your_Model_Type]()
if let data = data[“student”] as? [String: AnyObject]  {
  dataModelArray = Your_Model_type.modelsFromDictionaryArray(array: data)
}

//您将在dataModelArray中拥有数组 //您可以像这样访问的示例

dataModelArray[0].name