从JavaScript到带有JSON的Objective-C

From JavaScript to Objective-C with JSON

本文关键字:JSON Objective-C JavaScript      更新时间:2023-09-26

我不知道如何正确地"返回"这个JSON对象(在JavaScript中):

function callback() {   
                var points = '{'"points'": [';
                var params = polyline.getLatLngs();
                var i;
                for (i = 0; i < points.length; i++) {
                    params = params.concat('{'"latitude'": ', points[i].lat, ', '"longitude'": ', points[i].lng, '}');
                    if (i < points.length - 1) {
                        params = params.concat(', ');
                    }
                }
                params = params.concat('] }');
                return JSON.parse(params);
            }

我想用(Objective-C):之类的东西来捕捉它

NSString *s = [self.webView stringByEvaluatingJavaScriptFromString:@"callback();"];

显然,这会导致NSString,我真正想要的是NSData这样做(Objective-C):

NSData *data = [s dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:data options:NSJSONWritingPrettyPrinted error:&error];

那么,如何正确地返回JSON呢?

这应该做到:

function callback() {
    var params = polyline.getLatLngs();
    var result = [];
    var i;
    for (i = 0; i < params.length; i++) {
        result.push({latitute: params[i].lat, longitude: params[i].long});
    }
    return JSON.stringify({points: result});
}

请注意,JSON.parse从字符串生成对象,JSON.stringify从对象创建字符串。无需手动操作。