ios - NSDictionary 填充 JSON 数据

标签 ios jsonkit

我调用一个返回 JSON 的 URL(我使用 JSONKit)。我将其转换为 NSString,如下所示:

[{"name":"aaaaaa","id":41},{"name":"as","id":23},...

等等。我想仅使用 JSON 的“名称”部分填充 UIPickerView。但是,当用户选择一个名称时,我需要“id”参数,所以我想用 JSON 填充 NSDictionary (setValue:id for key:name),这样我就可以获得用户选择的值,并从字典中获取 id。如何仅使用 JSON 的“名称”填充数组?

我对 JSONKit 库有点迷失,有什么指导吗?谢谢。

最佳答案

首先,我认为将 name 作为字典中的键不是一个好主意,因为您可以有许多相同的名称。我会选择 id 作为键。

现在,你可以做的是:

NSString *myJson; //Suppose that this is the json you have fetched from the url
id jsonObject = [myJson objectFromJSONString];
// Now you have an array of dictionaries 
// each one having 2 key/value pairs (name/id)

NSArray *names = [jsonObject valueForKeyPath:@"name"];
NSArray *ids = [jsonObject valueForKeyPath:@"id"];

// Now you have two parallel arrays with names / ids

或者您可以迭代 json 对象并自己处理数据:

for (id obj in jsonObject)
{
  NSString *name = [obj valueForKey:@"name"];
  NSNumber *id = [obj valueForKey:@"id"];
  // Do whatever you like with these
}

关于ios - NSDictionary 填充 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290718/

相关文章:

iOS 8 快速应用程序,内容不居中

iphone - 使用自定义 subview 滚动 UITableView 时重复数据

ios - 从 Organizer 下载后,xcappdata 仅包含 AppData 文件夹

objective-c - 我如何在 JSONKit 中对 NSDate 字典进行 JSON 序列化

iphone - 如何初始化需要 JSON 负载的 Web 服务请求

iphone - 使用 JSONKit 在 iOS 中解析 JSON 数组 - 没有 ObjectForKey 标签的数组?

ios - 人们如何使用 React Native 处理 iOS 中的 "recent app"箭头?

objective-c - iOS 中如何将 NSMutableArray 对象的 NSString 数据转换为小写?

objective-c - 使用 JSONKit 处理 WordPress JSON 响应

ios7 - iOS 7 : 'isa' is deprecated