我需要将
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>
我正在使用本网站的XMLReader支持文件:
XMLReader
我正在使用此代码将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);
}