【发布时间】:2015-10-24 18:30:55
【问题描述】:
所以我有一个包含各种数据的 NSDictionary。打印到日志时,打印如下:
[{"user_id":3016817,"grade":"A","percent":"93","grading_periods":[{"assignments":[{"points":100.0,"grade":"A","score":95.0,"percent":"93","comment":null,"id":3268180},{"points":100.0,"grade":"A","score":90.0,"percent":"93","comment":null,"id":3268181}],"grade":"A","percent":"93","name":"Default"}]},{"user_id":3016818,"grade":"A","percent":"94","grading_periods":[{"assignments":[{"points":100.0,"grade":"A","score":92.0,"percent":"94","comment":null,"id":3268180},{"points":100.0,"grade":"A","score":95.0,"percent":"94","comment":null,"id":3268181}],"grade":"A","percent":"94","name":"Default"}]}]
如果我使用在线格式化程序,它的可读性会更高,看起来像这样:
[
{
"user_id": 3016817,
"grade": "A",
"percent": "93",
"grading_periods": [
{
"assignments": [
{
"points": 100,
"grade": "A",
"score": 95,
"percent": "93",
"comment": null,
"id": 3268180
},
{
"points": 100,
"grade": "A",
"score": 90,
"percent": "93",
"comment": null,
"id": 3268181
}
],
"grade": "A",
"percent": "93",
"name": "Default"
}
]
},
{
"user_id": 3016818,
"grade": "A",
"percent": "94",
"grading_periods": [
{
"assignments": [
{
"points": 100,
"grade": "A",
"score": 92,
"percent": "94",
"comment": null,
"id": 3268180
},
{
"points": 100,
"grade": "A",
"score": 95,
"percent": "94",
"comment": null,
"id": 3268181
}
],
"grade": "A",
"percent": "94",
"name": "Default"
}
]
}
]
我的问题是如何使用这本字典访问特定 user_id 的等级或分数值?
【问题讨论】:
-
这不是字典。这是一个字典数组。差别很大!
-
如果这是 JSON,有什么理由不使用 NSJSONSerialization?
-
哦,好的!这将如何影响我访问数据的方式?我很好奇,因为所有这些都在一个 NSDictionary 变量中。
-
您在声明它时可能已将其称为为 NSDictionary 变量,但这并不能使其成为 NSDictionary。对编译器撒谎只会导致稍后当您尝试将其视为 NSDictionary 而它不是一个时崩溃。它是一个 NSArray。相信我。
-
好的,我明白了,我将它从 NSDictionary 更改为 NSArray,它允许我使用 objectAtIndex 函数,然后我可以选择要使用的数据集。现在,我将如何使用 user_id 等于 3016818 的特定字典?
标签: ios objective-c json nsdictionary