我从服务器中提取json数据。它包含一个带有文本的字典,我将其插入到html模板中。
如何正确转义此字符串?
NSString* json = /* can be anything, but also garbage */
NSString* json_escaped = [json someEscapeMethod]; /////// HOW TO ESCAPE THIS ?
NSString* script = [NSString stringWithFormat:@"process('%@')", json_escaped];
NSString* result = [self.webView stringByEvaluatingJavaScriptFromString:script];
我目前这样做,但我不确定逃跑是否足够
NSString* json_escaped = [json stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"];
答案 0 :(得分:6)
我现在用这种方式编码,但开销很大。
NSString* json = /* can be anything, but also garbage */
NSString* json_escaped = [json stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString* script = [NSString stringWithFormat:@"process('%@')", json_escaped];
NSString* result = [self.webView stringByEvaluatingJavaScriptFromString:script];
并在像这样的javascript中解码它
function process(json_escaped) {
var json = decodeURIComponent(json_escaped);
alert('json: ' + json.toString());
}
我仍在寻找一种更好的解决方案,而且开销更少。
我最近了解到,使用javascript存在多个用于桥接objective-c的frameworks。
答案 1 :(得分:0)
NSRegularExpression中的“字符串中的转义字符”部分可能有效。