我调用一个返回JSON的URL(我使用JSONKit)。我将它转换为这样的NSString:
[{"name":"aaaaaa","id":41},{"name":"as","id":23},...
等等。我想用只有JSON的“名称”部分来填充UIPickerView。但是,当用户选择一个名称时,我需要“id”参数,所以我想用JSON填充一个NSDictionary(setValue:id为key:name),这样我就可以得到用户选择的值,并从字典中获取id。我怎么能只用JSON的“名字”填充一个数组?
我对JSONKit库有点失落,有什么指导吗?谢谢。
答案 0 :(得分: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
}