0

我调用一个返回 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 库有点迷茫,有什么指导吗?谢谢你。

4

1 回答 1

1

首先,我认为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
}
于 2012-07-02T09:22:40.510 回答