Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从字符串到字典?还是先到json再到字典?获取字符串的键的对象_Ios_Arrays_Json_Parsing_Dictionary - Fatal编程技术网

Ios 从字符串到字典?还是先到json再到字典?获取字符串的键的对象

Ios 从字符串到字典?还是先到json再到字典?获取字符串的键的对象,ios,arrays,json,parsing,dictionary,Ios,Arrays,Json,Parsing,Dictionary,我有一个字符串,然后我需要它作为json,这样我就可以解析它并获得键的对象 例如,我需要数组中ID为key的所有对象显示在表中。 我怎么用绳子呢 建议 下面是字符串: { "COMMON": { "RESULT_CD": "0000", "RESULT_MSG": "SUCCESS", "CATEGORY": "computing", "SVC_ID": "7", "TARGET": "list(VM)", "REQUEST_DATE": "2

我有一个字符串,然后我需要它作为json,这样我就可以解析它并获得键的对象

例如,我需要数组中ID为key的所有对象显示在表中。 我怎么用绳子呢

建议

下面是字符串:

{
  "COMMON": {
    "RESULT_CD": "0000",
    "RESULT_MSG": "SUCCESS",
    "CATEGORY": "computing",
    "SVC_ID": "7",
    "TARGET": "list(VM)",
    "REQUEST_DATE": "201410271741",
    "PAGE_NO": 0,
    "NUM_PER_PAGE": 0
  },
  "DATA": {
    "VM_LIST": [
      {
        "@SVC_ID": "7",
        "ID": "VMSPE0000000083",
        "VM_ALIAS": "CV00900000083",
        "VM_OPER_DESC": "Power On",
        "MACHIN_STATUS_DESC": "[150748]success:virtual machine power on",
        "USVC_DESC": "7/Running, No Change r/hurhurhur, Inc.",
        "PURPOSE_NM": "Service_Default",
        "VIRT_TYPE_DESC": "Para Virtualization",
        "SERVER_STATUS_MSG": "VM running",
        "VCPU_CNT": "2",
        "MEM_SIZE_MB": "1024",
        "VNIC_CNT": "1",
        "OS_NAME": "CentOS_6.4_en_64"
      },
      {
        "@SVC_ID": "7",
        "ID": "VMSPE0000000093",
        "VM_ALIAS": "CV00900000093",
        "VM_OPER_DESC": "Reboot",
        "MACHIN_STATUS_DESC": "[150749]success:virtual machine reboot",
        "USVC_DESC": "7/Running, No Change r/hurhurhur, Inc.",
        "PURPOSE_NM": "Service_Default",
        "VIRT_TYPE_DESC": "Para Virtualization",
        "SERVER_STATUS_MSG": "VM running",
        "VCPU_CNT": "1",
        "MEM_SIZE_MB": "2048",
        "VNIC_CNT": "1",
        "OS_NAME": "Gentoo _2011-0 _en_64"
      },
      {
        "@SVC_ID": "7",
        "ID": "VMSPE0000000096",
        "VM_ALIAS": "CV00900000096",
        "VM_OPER_DESC": "Vm Initialization",
        "MACHIN_STATUS_DESC": "[163023]success:virtual machine running",
        "USVC_DESC": "7/Running, No Change r/hurhurhur, Inc.",
        "PURPOSE_NM": "Service_Default",
        "VIRT_TYPE_DESC": "Para Virtualization",
        "SERVER_STATUS_MSG": "VM running",
        "VCPU_CNT": "2",
        "MEM_SIZE_MB": "1024",
        "VNIC_CNT": "1",
        "OS_NAME": "OpenSuse_12.1_en_64"
      }
    ]
  }
}
编辑:

下面是我在谷歌上搜索到的内容

NSDictionary *JSON =
                 [NSJSONSerialization JSONObjectWithData: [response dataUsingEncoding:NSUTF8StringEncoding]
                                                 options: NSJSONReadingMutableContainers
                                                   error:nil];
但是,将字符串NSLog与JSON NSLog进行比较

字符串:

{
  "COMMON": {
    "RESULT_CD": "0000",
    "RESULT_MSG": "SUCCESS",
    "CATEGORY": "computing",
    "SVC_ID": "7",
    "TARGET": "list(VM)",
    "REQUEST_DATE": "201410271757",
    "PAGE_NO": 0,
    "NUM_PER_PAGE": 0
  },
  "DATA": {
    "VM_LIST": [
      {
        "@SVC_ID": "7",
        "ID": "VMSPE0000000083",
        "VM_ALIAS": "CV00900000083",
        "VM_OPER_DESC": "Power On",
        "MACHIN_STATUS_DESC": "[150748]success:virtual machine power on",
        "USVC_DESC": "7/Running, No Change r/hurhurhur, Inc.",
        "PURPOSE_NM": "Service_Default",
        "VIRT_TYPE_DESC": "Para Virtualization",
        "SERVER_STATUS_MSG": "VM running",
        "VCPU_CNT": "2",
        "MEM_SIZE_MB": "1024",
        "VNIC_CNT": "1",
        "OS_NAME": "CentOS_6.4_en_64"
      },
      {
        "@SVC_ID": "7",
        "ID": "VMSPE0000000093",
        "VM_ALIAS": "CV00900000093",
        "VM_OPER_DESC": "Reboot",
        "MACHIN_STATUS_DESC": "[150749]success:virtual machine reboot",
        "USVC_DESC": "7/Running, No Change r/hurhurhur, Inc.",
        "PURPOSE_NM": "Service_Default",
        "VIRT_TYPE_DESC": "Para Virtualization",
        "SERVER_STATUS_MSG": "VM running",
        "VCPU_CNT": "1",
        "MEM_SIZE_MB": "2048",
        "VNIC_CNT": "1",
        "OS_NAME": "Gentoo _2011-0 _en_64"
      },
      {
        "@SVC_ID": "7",
        "ID": "VMSPE0000000096",
        "VM_ALIAS": "CV00900000096",
        "VM_OPER_DESC": "Vm Initialization",
        "MACHIN_STATUS_DESC": "[163023]success:virtual machine running",
        "USVC_DESC": "7/Running, No Change r/hurhurhur, Inc.",
        "PURPOSE_NM": "Service_Default",
        "VIRT_TYPE_DESC": "Para Virtualization",
        "SERVER_STATUS_MSG": "VM running",
        "VCPU_CNT": "2",
        "MEM_SIZE_MB": "1024",
        "VNIC_CNT": "1",
        "OS_NAME": "OpenSuse_12.1_en_64"
      }
    ]
  }
}
JSON:

json缺少一些东西


这样可以吗?

首先将字符串存储在数组中,然后您可以使用以下命令将其转换为jsonobject

[NSJSONSerialization JSONObjectWithData:[yourArray dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL]

您可以使用名为NSJSONSerialization的内置iOS功能将NSString转换为Json格式。为此,您必须将NSString转换为NSData

// jsonString = your string
NSError *err;
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id objectChecker = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];

if ([objectChecker isKindOfClass:[NSArray class]])
{
    //your object is NSArray.
}
else if([objectChecker isKindOfClass:[NSDictionary class]])
{
    //your object is NSDictionary.
}
else 
{
    //your string doesn't contain proper json format.
}

也许这对你有帮助

你知道关于NSJSONSerialization的任何事情吗?…或者关于Google的任何事情吗?请检查编辑,谢谢你你的JSON被成功解析到NSDictionary。您在控制台中看到的只是NSDictionary的描述字符串表示,它看起来不像JSON。
// jsonString = your string
NSError *err;
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id objectChecker = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];

if ([objectChecker isKindOfClass:[NSArray class]])
{
    //your object is NSArray.
}
else if([objectChecker isKindOfClass:[NSDictionary class]])
{
    //your object is NSDictionary.
}
else 
{
    //your string doesn't contain proper json format.
}