phonegap中将iOS NSDictionary数据类型转换为javascript。如何?
phonegap的新成员。关于脚本的知识较少 在iOS本机代码中,将NSDictionary与CDVCommandStatus一起传递\u OK 到java脚本,如下所示phonegap中将iOS NSDictionary数据类型转换为javascript。如何?,javascript,ios,cordova,ios4,phonegap-plugins,Javascript,Ios,Cordova,Ios4,Phonegap Plugins,phonegap的新成员。关于脚本的知识较少 在iOS本机代码中,将NSDictionary与CDVCommandStatus一起传递\u OK 到java脚本,如下所示 NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"kolaveri", @"Name",nil]; result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK message
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"kolaveri", @"Name",nil];
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:dict];
[self writeJavascript:[result toErrorCallbackString:callbackId]];
在JavaScript中
正在调用以下函数:
function MySuccessHandler (result)
{
alert("SUCCESS: \r\n"+result );
}
传递NSString时,将在警报消息中打印相同的字符串
通过NSDictionary后,如何获取javascript中的键/值
它在警报消息中打印[object]
请提供一些关于它的指针 将您的
NSDictionary
转换为JSON字典/对象。如果使用iOS5,可以使用NSJSONSerialization
。尝试调用警报(“成功:\r\n”+JSON.stringify(结果))
打印JSON对象谢谢回复;仍然面临一些问题,不确定我错在哪里。我做了以下工作:序列化为NSData,并转换为NSString,然后用“messageAsString”传递给CDVPluginResult,但我无法在javascript中仍然解析?转换后的NSString看起来像什么?您确定转换为JSON字符串成功,但没有返回nil吗?不,转换成功,而且在javascript中,当我在警报消息中打印时,我得到类似{“site”:“stack”,“over”:“flow”}的内容,但我无法作为键/值对从该对象解析ex:result[“site”],当然,您不能直接访问键/值。回到javascript中,您有一个字符串,而不是一个对象。将该字符串解析为javascript对象(最简单的方法是使用JSeval
函数,即使不是最安全的),然后才能将其用作对象并访问其键!感谢您的回复,并为此花费时间。:)。让它工作起来。。我必须使用NSDictionary的NSMutableDictionary安装。