将字典数组从 iOS 传递给 javascript 函数

Passing array of dictionary to javascript function from iOS

我的 javascript 函数需要这种类型的数组:

var data = [{
                                    "sale": "202",
                                    "year": "2000"
                                    }, {
                                    "sale": "215",
                                    "year": "2002"
                                    }, {
                                    "sale": "179",
                                    "year": "2004"
                                    }, {
                                    "sale": "199",
                                    "year": "2006"
                                    }, {
                                    "sale": "134",
                                    "year": "2008"
                                    }, {
                                    "sale": "176",
                                    "year": "2010"
                                    }];

我想将此数组作为参数传递给 [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"js_func(%@, %@)", y1Arr, y2Arr]];

我正在传递具有以下格式的字典数组:

({
    x = "663.78";
    y1 = "-0.000";
},
{
    x = "663.88";
    y1 = "0.005";
},
{
    x = "663.98";
    y1 = "0.019";
},
{
    x = "664.08";
    y1 = "-0.001";
}
)

但是它不起作用...

你不应该在 stringWithFormat 中直接传递你的数组,你应该首先将它们转换成 json 对象,然后将那些 json 对象(作为字符串表示)传递给 stringWithFormat

NSData *data1 = [NSJSONSerialization dataWithJSONObject:y1Arr options:0 error:NULL];
NSString *y1ArrStr = [[NSString alloc] initWithData:data1 encoding:NSUTF8StringEncoding];

NSData *data2 = [NSJSONSerialization dataWithJSONObject:y2Arr options:0 error:NULL];
NSString *y2ArrStr = [[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding];

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"js_func(%@, %@)", y1ArrStr, y2ArrStr]];