当前位置: 首页 > >

js string转json有斜杠_包含正斜杠的字符串的NSJSONSerialization序列化/和HTML被错误地转义...

发布时间:

我正在尝试将一些简单的HTML转换为JSON对象中的字符串值,并且在获取字符串编码以免在NSJSONSerialization中转义字符串时遇到了麻烦。


示例…我有一个包含一些基本HTML文本的字符串:


NSString *str = @"


Samples / Text

";

期望的结果是将HTML作为值的JSON:


{


"Title":"My Title",


"Instructions":"


Samples / Text

"

}


我正在使用标准技术将NSDictionary转换为包含JSON的NSString:


NSMutableDictionary *dict = [NSMutableDictionary dictionary];


[dict setObject:str forKey:@"Instructions"];


[dict setObject:@"My Title" forKey:@"Title"];


NSError *err;


NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&err];


NSString *resultingString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];


NSLog(@"%@", resultingString);


此方法生成的JSON是有效的,但是HTML的所有正斜杠均已转义:


{


"Title":"My Title",


"Instructions":"


Samples / Text"


}


这将在指令JSON字符串中创建无效的HTML。


我想坚持使用NSJSONSerialization,因为我们在框架中的其他地方都使用了NSJSONSerialization,在被取消支持之前,我在切换到非Apple库之前已经被烧死了。我尝试了许多不同的字符串编码,并且所有这些编码都避开了尖括号。


显然,


/是JavaScript中/字符的有效表示形式,这就是为什么正斜杠被转义的原因(甚至是StackOverflow文本编辑器也对其进行了转义)。请参阅:使用正斜杠转义json字符串?


以及JSON:为什么正斜杠转义了?。我只是不希望它这样做,而且似乎没有一种方法可以阻止iOS在序列化时转义字符串值中的正斜杠。



友情链接: