I have a STRING, then I need it as json so I can parse it and get the objects for keys.
For example, I need all objects of key for ID in an array to display in a table. How would I do it with the string?
Suggestions?
Here's the string:
{
"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"
}
]
}
}
EDIT:
Below is what I was able to google.
NSDictionary *JSON =
[NSJSONSerialization JSONObjectWithData: [response dataUsingEncoding:NSUTF8StringEncoding]
options: NSJSONReadingMutableContainers
error:nil];
BUT, compare the string NSLog to the JSON NSLog!!
String:
{
"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:
{
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;
}
);
};
}
The json is missing things!!
Is that alright???
首先将字符串存储在数组中的字符串上方,然后可以使用以下命令将其转换为jsonobject
[NSJSONSerialization JSONObjectWithData:[yourArray dataUsingEncoding:NSUTF8StringEncoding] options:0 error:NULL]
You can convert NSString to Json Format using inbuilt iOS functionality called NSJSONSerialization
. for that you have to convert NSString to 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.
}
Maybe this will help you. :)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.