1

XML 応答を JSON に変換し、サンドを json To javaScript コードに変換する必要があります。

My XML response:
<cell>
       <Result>True</Result>
       <sguid>02291c402-2220-422b-b199-f92f22e56d2f</sguid>
</cell>

このサイトの XMLReader サポート ファイルを使用しています。

XMLリーダー

このコードを使用して、XML を JSON に変換しています。

+ (NSString*) XMLToJson:(CXMLDocument *)xmlDocument
{
    NSError *error = nil;

    NSArray *resultNodes = [xmlDocument nodesForXPath:@"//cell" error:&error];

    if(error)
        NSLog(@"%@",error.description);

    CXMLNode *cellNode = [resultNodes objectAtIndex:0];

    NSLog(@"%@",cellNode.XMLString);

    NSError *parseError = nil;
    NSDictionary *xmlDictionary = [XMLReader dictionaryForXMLString:cellNode.XMLString   error:&parseError];

    NSLog(@"%@", xmlDictionary);

  //{print this.
  //  cell =     {
  //      Result =         {
  //          text = True;
  //      };
  //      sguid =         {
  //          text = "0391c402-1120-460b-b199-f92fffe56d2f";
  //      };
  //  };
  //}




    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:xmlDictionary
                                                       options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string
                                                         error:&error];
    if(error)
        NSLog(@"%@",error.description);

     NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    NSLog(@"%@", jsonString);

    return jsonString;
}

次のような JSON 応答が得られました。

{
  "cell" : {
    "Result" : {
      "text" : "True"
    },
    "sguid" : {
      "text" : "0391c402-1120-460b-b199-f92fffe56d2f"
    }
  }
}

次のような JSON 応答が必要です。

{
  "cell": {
    "Result": "True",
    "sguid": "02291c402-2220-422b-b199-f92f22e56d2f"
  }
}

次に、このjsonをjavascriptコードに送信するため、jquery mobile dont know parser thisという例外が発生し、構文エラーの例外がスローされます。

プログラマーがこのソリューションを使用して支援しているのを見てきましたが、このソリューションでも同じ結果が得られます。

iOS での XML から JSON への変換

ありがとう

4

2 に答える 2

3

XMLReader を使用する際の問題。この問題を解決するには、XMLReader の代わりにXMLConverterを使用できます。

于 2013-10-18T15:39:12.170 に答える