【发布时间】:2014-10-27 12:10:23
【问题描述】:
好吧,愚蠢的问题,这应该很明显,但我所有的谷歌搜索都没有做任何事情。
我遇到过这两种方法:
myarray/dictionary = [jsonDictionary objectForKey:@"ID"];
这将获取密钥 ID 对
myarray/dictionary = jsonDictionary[@"COMMON"];
这省略了COMMON中的数据
这是我的 json 字典,如何获取所有 ID 键的数组?
{
COMMON = {
CATEGORY = computing;
"NUM_PER_PAGE" = 0;
"PAGE_NO" = 0;
"REQUEST_DATE" = 201410271757;
"RESULT_CD" = 0000;
"RESULT_MSG" = SUCCESS;
"SVC_ID" = 7;
TARGET = "list(VM)";
};
DATA = {
"VM_LIST" = (
{
"@SVC_ID" = 7;
ID = VMSPE0000000083;
"MACHIN_STATUS_DESC" = "[150748]success:virtual machine power on";
"MEM_SIZE_MB" = 1024;
"OS_NAME" = "CentOS_6.4_en_64";
"PURPOSE_NM" = "Service_Default";
"SERVER_STATUS_MSG" = "VM running";
"USVC_DESC" = "7/Running, No Change r/hurhurhur, Inc.";
"VCPU_CNT" = 2;
"VIRT_TYPE_DESC" = "Para Virtualization";
"VM_ALIAS" = CV00900000083;
"VM_OPER_DESC" = "Power On";
"VNIC_CNT" = 1;
},
{
"@SVC_ID" = 7;
ID = VMSPE0000000093;
"MACHIN_STATUS_DESC" = "[150749]success:virtual machine reboot";
"MEM_SIZE_MB" = 2048;
"OS_NAME" = "Gentoo _2011-0 _en_64";
"PURPOSE_NM" = "Service_Default";
"SERVER_STATUS_MSG" = "VM running";
"USVC_DESC" = "7/Running, No Change r/hurhurhur, Inc.";
"VCPU_CNT" = 1;
"VIRT_TYPE_DESC" = "Para Virtualization";
"VM_ALIAS" = CV00900000093;
"VM_OPER_DESC" = Reboot;
"VNIC_CNT" = 1;
},
{
"@SVC_ID" = 7;
ID = VMSPE0000000096;
"MACHIN_STATUS_DESC" = "[163023]success:virtual machine running";
"MEM_SIZE_MB" = 1024;
"OS_NAME" = "OpenSuse_12.1_en_64";
"PURPOSE_NM" = "Service_Default";
"SERVER_STATUS_MSG" = "VM running";
"USVC_DESC" = "7/Running, No Change r/hurhurhur, Inc.";
"VCPU_CNT" = 2;
"VIRT_TYPE_DESC" = "Para Virtualization";
"VM_ALIAS" = CV00900000096;
"VM_OPER_DESC" = "Vm Initialization";
"VNIC_CNT" = 1;
}
);
};
}
数组的正确输出是
@"VMSPE0000000083", @"VMSPE0000000093", @"VMSPE0000000096"
我似乎无法弄清楚,嵌套让我感到困惑。
【问题讨论】:
-
尝试
NSDicationary *dictionary = jsonDictionary[@"DATA"];然后[dictionary valueForKeyPath:@"VM_LIST.ID"]; -
在寻找“特殊”方式之前,请先采用“即插即用”方式。遍历字典数组,提取每个 ID 值,并将其填充到 NSMutableArray 中。
-
如果你看不懂 JSON,去 json.org 学习 JSON 语法。只需 5-10 分钟即可学会。
标签: ios arrays json parsing dictionary