我需要将XML响应转换为JSON并转换为json转换为javaScript代码。将XML转换为iOS中的JSON转换
My XML response:
<cell>
<Result>True</Result>
<sguid>02291c402-2220-422b-b199-f92f22e56d2f</sguid>
</cell>
我使用的XMLReader从这个网站支持文件:
的XMLReader
我使用这个代码,以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的不知道解析器这并抛出语法错误的异常。
我见过程序员使用这个解决方案并且帮助他们,但我仍然在这个解决方案中得到相同的结果。
XML into JSON conversion in iOS
感谢
您只需检查该节点是否具有名为“text”的子节点并且没有子节点。然后你可以提取真正的值,并跳过XMLReader中的“文本”节点:) – Bartu 2013-04-04 12:53:29
如何检查? – 2013-04-04 13:34:43