【问题标题】:how to retrieve data from json string如何从json字符串中检索数据
【发布时间】:2017-01-24 20:19:59
【问题描述】:
[
  {
    "c_name" : "r",
    "email_id" : "r",
    "phn_no" : "2",
    "c_id" : "1"
  },
  {
    "c_name" : "e",
    "email_id" : "e",
    "phn_no" : "4",
    "c_id" : "2"
  }
]

这是我收到的 JSON 字符串输出。现在如何访问这些数据?我用NSJSONSerialization类:

NSError *writeError = nil;

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr_mcontacts options:NSJSONWritingPrettyPrinted error:&writeError];

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

NSLog(@"JSON Output: %@",jsonString);

【问题讨论】:

  • 你已经在 json 中有数据了。在您将其序列化为 json 之前,它就是您的 arr_mcontacts 中的内容。
  • 过去有成百上千个关于如何使用 NSJSONSerialization 解析 json 数据的问题。在所有这些问题中,你不明白具体是哪一个具体部分怎么办?到目前为止,您尝试过什么?

标签: ios objective-c json


【解决方案1】:

我想你有很多字典。像这样的东西应该可以工作:

NSError *writeError;
NSError *error;
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableArray *arrayOfDictionary = [[NSMutableArray alloc] init];
arrayOfDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];

NSDictionary *dictionary = [myArray objectAtIndex:0];
NSString *valueString= [dictionary objectForKey: @"c_name"];

【讨论】:

    【解决方案2】:

    为了访问数据,您使用字典而不是字符串。下面的代码显示

    NSDictionary *responseDict=[NSJSONSerialization JSONObjectWithData: jsonData options:NSJSONReadingMutableContainers error:&error]; for(NSArray *a in responseDict) {[cnamearray addobject [a valueforKey:@"c_name"]]; }NSLog(@"The cnamearray contains:", cnamearray);

    输出将是 cnamearray 包含:{ r,e}

    【讨论】:

      猜你喜欢
      • 2015-08-13
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多