如何将NSDictionary克隆到JavaScript对象[iOS Cordova跨平台]
亲爱的程序员们: 我必须完成一个项目,我是那么接近完成它,但我无法想出如何做到这一点。也许这里有人能帮我 我使用Cordova开发了一个简单的iOS应用程序,其中我必须通过Objective-C加载几个JSON,并且我必须能够在WebView中使用这些数据。每个jSON的数据都分别加载到NSDictionary中,所以当我记录它时,我得到例如:如何将NSDictionary克隆到JavaScript对象[iOS Cordova跨平台],javascript,objective-c,arrays,cordova,webview,Javascript,Objective C,Arrays,Cordova,Webview,亲爱的程序员们: 我必须完成一个项目,我是那么接近完成它,但我无法想出如何做到这一点。也许这里有人能帮我 我使用Cordova开发了一个简单的iOS应用程序,其中我必须通过Objective-C加载几个JSON,并且我必须能够在WebView中使用这些数据。每个jSON的数据都分别加载到NSDictionary中,所以当我记录它时,我得到例如: data = ( { "id_string" = TRAVELLING; nam
data = (
{
"id_string" = TRAVELLING;
name = Traveling;
sequence = 0;
},
{
"id_string" = FOOD;
name = Food;
sequence = 0;
},
{
"id_string" = FASHION;
name = Fashion;
sequence = 0;
},
{
"id_string" = RELAX;
name = Relax;
sequence = 0;
},
{
"id_string" = FUN;
name = Fun;
sequence = 0;
},
{
"id_string" = CHILDREN;
name = "For children";
sequence = 0;
},
{
"id_string" = GIFTS;
name = Gifts;
sequence = 0;
},
{
"id_string" = STOCK;
name = Stock;
sequence = 0;
},
{
"id_string" = OTHER;
name = Other;
sequence = 0;
}
);
"request_duration" = "0.017858028411865";
status = success;
}
现在我知道有一种方法可以将Objective-C中的数据注入WebView中的JavaScript,那就是创建JavaScript函数,该函数将处理对象创建,并通过
NSString *cText = @"This is a text from Objective-C";
NSString *cFullText = [NSString stringWithFormat:@"receiveMessage('%@')", cText];
NSString *cResult = [theWebView stringByEvaluatingJavaScriptFromString:cFullText];
其中receiveMessage是一个Javascript函数
目标是重建一个JavaScript对象,当通过Console.Log进行回显时,该对象将如下所示:
. [Object, Object, Object, Object, Object, Object, Object, Object, Object]
. 0: Object
. id_string: “TRAVELLING”
. name : “Traveling”
. sequence: 0
. __proto__: Object
. 1: Object
. id_string: “FOOD”
. name : “Food”
. sequence: 0
. __proto__: Object
. 2: Object
. 3: Object
. 4: Object
. 5: Object
. 6: Object
. 7: Object
. 8: Object
因此,我可以通过以下方式检索值:
firstIDString = categoriesArray[0].id_string;
firstName = categoriesArray[0].name;
考虑到这一点,我正在尝试以下方法:
I.为NSDictionary创建一个foreach循环,它将逐行重建对象[我认为还可以,但并不完美]
或
二,。严格地将接收到的jSON转换为Objective-C,通过JavaScript函数发送一次,然后用slice或类似的东西重新构建它。[我认为更好]
目前,我正在通过以下方式测试第一种方法(认为第二种方法会更好,但不确定应该如何执行):
虽然这会创建一个包含添加信息的数组,但我不确定如何提高ID(对象长度),这样我就不会总是重写0索引
你们对如何做到这一点有什么建议吗?
感谢您的时间和投入
function appendArrayWithDataFromObjeciveC(arrayName,id,keyName,value){
//arrayName[id] = [];
//arrayName[id][keyName] = value;
//arrayName.push( { ID:1, "Name":"whatever" } );
//arrayName[ id ].keyName = value;
//arrayName[keyName] = value;
console.log("Array before:");
console.log(arrayName);
var tempArray = [];
tempArray = {keyName : value};
arrayName = arrayName.concat(tempArray);
console.log("Array after:");
console.log(arrayName);
return "OK";
}