【问题标题】:Getting specific index such students names from json data从 json 数据中获取特定索引,例如学生姓名
【发布时间】:2018-10-03 04:52:35
【问题描述】:

我正在 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);

请帮我获取学生姓名

【问题讨论】:

  • 不清楚:您打印的究竟是什么?避免使用valueForKey:,我不建议初学者使用,改用objectForKey:,为什么[[response valueForKey:@"name"]]中的双括号?在这种情况下,response 到底是什么?我在您的 logq 中看到了 NSArray,但没有任何相关内容。
  • 首先获取学生的 NSArray,然后您就可以从字典中获取姓名。
  • 如何获取请帮帮我
  • @Mrdavidalan 你能在你的数组中获取数据吗?是或否。
  • 抱歉,此格式无效。

标签: ios objective-c json


【解决方案1】:

您正在检查“数据”键中的“名称”键,但实际上它存在于“学生”键中。

解析Student对象并使用for循环一一获取“名称”键值。

使用此站点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

【讨论】:

  • 你能帮我简单的例子吗我是ios新手
  • 查看我编辑的答案...这会给你提示,这是完美的过程
  • 问题中没有swift标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
  • 2016-03-10
  • 1970-01-01
相关资源
最近更新 更多