我需要将
XML响应转换为
JSON.
我的XML响应:
<commands> <command id="0" name="GetAPPsProducts"> <command_parameters> <command_parameter id="0" name="APPs_Code">ATAiOS</command_parameter> </command_parameters> <command_result> <apps_products> <apps_products id="1"> <apps_code>ATAiOS</apps_code> <apps_product_id>2</apps_product_id> <brand_id>2</brand_id> <brand_desc>Generic</brand_desc> <brand_product_id>2</brand_product_id> <product_id>001-7</product_id> <descrizione>MyTravelApp</descrizione> </apps_products> </apps_products> </command_result> </command>
我正在使用此代码将XML转换为JSON
NSError *parseError = nil; NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:testXMLString error:&parseError]; NSLog(@" %@",xmlDictionary);
我收到了JSON响应:
commands = { command = { "command_parameters" = { "command_parameter" = { id = 0; name = "APPs_Code"; text = "\n \n \n \n ATAiOS"; }; text = "\n "; }; "command_result" = { "apps_products" = { "apps_products" = { "apps_code" = { text = "\n \n \n \n ATAiOS"; }; "apps_product_id" = { text = "\n 2"; }; "brand_desc" = { text = "\n Generic"; }; "brand_id" = { text = "\n 2"; }; "brand_product_id" = { text = "\n 2"; }; descrizione = { text = "\n MyTravelApp"; }; id = 1; "product_id" = { text = "\n 001-7"; }; text = "\n "; }; text = "\n "; }; text = "\n "; }; id = 0; name = GetAPPsProducts; text = "\n "; }; text = "\n "; }; text = "\n \n"; };
我需要这样的回应:
{ "commands": { "command": { "-id": "0","-name": "GetAPPsProducts","command_parameters": { "command_parameter": { "-id": "0","-name": "APPs_Code","#text": "ATAiOS" } },"command_result": { "apps_products": { "apps_products": { "-id": "1","apps_code": "ATAiOS","apps_product_id": "2","brand_id": "2","brand_desc": "Generic","brand_product_id": "2","product_id": "001-7","descrizione": "MyTravelApp" }
我在线转换时得到这个回应.如何获得这样的回应
提前致谢.
解决方法
NSError *parseError = nil; NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:testXMLString error:&parseError]; NSLog(@" %@",xmlDictionary);
此代码不会将任何内容转换为JSON.它给你一个NSDictionary.您需要从字典中实际创建JSON数据.尝试这个大小.
NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:xmlDictionary options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string error:&error]; if (! jsonData) { NSLog(@"Got an error: %@",error); } else { NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"%@",jsonString); }