我正在使用 JSON 转换器将 XML 字符串转换为 JSON 字符串。我需要再次将此 JSON 字符串转换回 XML 字符串。有什么具体的方法可以做到这一点吗?
问问题
2659 次
1 回答
2
使用此代码,您可以将JSON转换为NSDictionary
NSString * jsonString = @"blblblblblb";
NSStringEncoding encoding;
NSData * jsonData = [jsonString dataUsingEncoding:encoding];
NSError * error=nil;
NSDictionary * parsedData = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
请使用以下代码将 NSDictionary 转换为 XML。所以你可以有 JSON 到 XML 的转换器。
+(NSString*)ConvertDictionarytoXML:(NSDictionary*)dictionary withStartElement:(NSString*)startele
{
NSMutableString *xml = [[NSMutableString alloc] initWithString:@""];
NSArray *arr = [dictionary allKeys];
[xml appendString:@"<?xml version=\"1.0\" encoding=\"utf-8\"?>"];
[xml appendString:[NSString stringWithFormat:@"<%@>",startele]];
for(int i=0;i<[arr count];i++)
{
id nodeValue = [dictionary objectForKey:[arr objectAtIndex:i]];
if([nodeValue isKindOfClass:[NSArray class]] )
{
if([nodeValue count]>0){
for(int j=0;j<[nodeValue count];j++)
{
id value = [nodeValue objectAtIndex:j];
if([ value isKindOfClass:[NSDictionary class]])
{
[xml appendString:[NSString stringWithFormat:@"<%@>",[arr objectAtIndex:i]]];
[xml appendString:[NSString stringWithFormat:@"%@",[value objectForKey:@"text"]]];
[xml appendString:[NSString stringWithFormat:@"</%@>",[arr objectAtIndex:i]]];
}
}
}
}
else if([nodeValue isKindOfClass:[NSDictionary class]])
{
[xml appendString:[NSString stringWithFormat:@"<%@>",[arr objectAtIndex:i]]];
if([[nodeValue objectForKey:@"Id"] isKindOfClass:[NSString class]])
[xml appendString:[NSString stringWithFormat:@"%@",[nodeValue objectForKey:@"Id"]]];
else
[xml appendString:[NSString stringWithFormat:@"%@",[[nodeValue objectForKey:@"Id"] objectForKey:@"text"]]];
[xml appendString:[NSString stringWithFormat:@"</%@>",[arr objectAtIndex:i]]];
}
else
{
if([nodeValue length]>0){
[xml appendString:[NSString stringWithFormat:@"<%@>",[arr objectAtIndex:i]]];
[xml appendString:[NSString stringWithFormat:@"%@",[dictionary objectForKey:[arr objectAtIndex:i]]]];
[xml appendString:[NSString stringWithFormat:@"</%@>",[arr objectAtIndex:i]]];
}
}
}
[xml appendString:[NSString stringWithFormat:@"</%@>",startele]];
NSString *finalxml=[xml stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
// NSLog(@"%@",xml);
return finalxml;
}
于 2015-10-28T15:17:36.153 回答