[英]From JavaScript to Objective-C with JSON
I have no idea how to properly 'return' this JSON object (in JavaScript): 我不知道如何正确地“返回”这个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);
}
I want to catch it with something like (Objective-C): 我想用(Objective-C)来捕捉它:
NSString *s = [self.webView stringByEvaluatingJavaScriptFromString:@"callback();"];
Obviously this results in a NSString, what I really want is NSData to do this (Objective-C): 显然,这导致了NSString,我真正想要的是NSData来做到这一点(Objective-C):
NSData *data = [s dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:data options:NSJSONWritingPrettyPrinted error:&error];
So, how to properly return the JSON? 那么,如何正确返回JSON?
This should do it: 应该这样做:
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});
}
Note that JSON.parse
generates an object from a string, and JSON.stringify
creates a string from an object. 请注意,
JSON.parse
从字符串生成对象,而JSON.stringify
从对象生成字符串。 No need to do it manually. 无需手动进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.