XML в преобразование JSON в iOS

Мне нужно преобразовать 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"
          }

Я получаю этот ответ при конверсии в Интернете. Как получить ответ вроде этого.

Спасибо в Advance.

Ответ 1

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);
}