I need to convert XML response to JSON.
My XML response:
<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>
I am using XMLReader supporting file from this site:
XMLReader
I am using this code to convert XML to JSON
NSError *parseError = nil;
NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:testXMLString error:&parseError];
NSLog(@" %@", xmlDictionary);
I got JSON response like this:
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";
};
I need response like this:
{
"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"
}
I get this response while conversion in online. How to get response like this.
Thanks in Advance.
NSError *parseError = nil;
NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:testXMLString error:&parseError];
NSLog(@" %@", xmlDictionary);
This code isn't converting anything to JSON. Its giving you an NSDictionary. You need to actually create the JSON data from the dictionary. Try this on for size.
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);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With