将包含NSDictionary对象的NSArray传递给Javascript函数

将包含NSDictionary对象的NSArray传递给Javascript函数,javascript,cocoa,cocoa-touch,uiwebview,iphone,Javascript,Cocoa,Cocoa Touch,Uiwebview,Iphone,我有一个要求,即在包含NSDictionary对象的NSArray中有大量信息。现在,我必须通过webview将它们传递到javascript函数中,使用: - (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script 我的问题是: 如何在调用端准备参数,以便Javascript理解 如何以Javascript接收它们?基本上,函数签名应该是什么?如何读取java函数中数组的字典对象的键值对 对于Javascri

我有一个要求,即在包含NSDictionary对象的NSArray中有大量信息。现在,我必须通过webview将它们传递到javascript函数中,使用:

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
我的问题是:

  • 如何在调用端准备参数,以便Javascript理解
  • 如何以Javascript接收它们?基本上,函数签名应该是什么?如何读取java函数中数组的字典对象的键值对
  • 对于Javascript,我基本上没有足够的经验,所以如果这个问题太抽象,请原谅我,我希望我的问题是清楚的

    编辑:我来这里是为了说明将NSDictionary对象传递给javascript函数是不可能的。那么,我们如何才能做到这一点呢

    谢谢和问候,
    Raj

    由于只能通过EvaluatingJavaScriptFromString:向
    -stringByEvaluatingJavaScriptFromString:
    提供字符串,因此需要序列化参数。最简单的方法是使用各种Cocoa JSON库之一将其转换为JSON。然后可以将其作为JavaScript文本插入到代码中。比如:

    NSString *json = [serialize JSON here];
    NSString *scriptString = [NSString stringWithFormat:@"doSomething(%@)", json];
    

    在JSON中,NSDictionary将表示为JavaScript对象,因此您可以通过
    数组[5]访问其成员。someKey
    (或
    数组[5][“some key”]
    )。

    由于您只能向
    -stringByEvaluatingJavaScriptFromString:
    提供字符串,因此您需要序列化参数。最简单的方法是使用各种Cocoa JSON库之一将其转换为JSON。然后可以将其作为JavaScript文本插入到代码中。比如:

    NSString *json = [serialize JSON here];
    NSString *scriptString = [NSString stringWithFormat:@"doSomething(%@)", json];
    

    在JSON中,NSDictionary将表示为JavaScript对象,因此您可以通过
    array[5]访问其成员。someKey
    (或
    array[5][“some key”]
    )。

    您还可以将它们拆开并重新串在一起


    你也可以把它们撕成碎片再串起来

    我现在聪明多了。。。☺ 我想-可能,也许。。。这是一个更好的解决方案。。。。JSONKIT提供以下基本类型映射到以下ObjytoC基础类:

    ╭───────────────┬─────────────────────╮
    │  JSON         │  Objective -C       │
    ├───────────────┼─────────────────────┤
    │  true|false   │  NSNull             │
    ├───────────────┼─────────────────────┤
    │  Number       │  NSNumber           │   
    ├───────────────┼─────────────────────┤
    │  String       │  NSString           │
    ├───────────────┼─────────────────────┤
    │  Array        │  NSArray            │
    ├───────────────┼─────────────────────┤
    │  Object       │  NSDictionary       │
    ╰───────────────┴─────────────────────╯
    
    对象是
    关联数组
    键/值哈希表
    地图
    ,或
    字典

    JSONKIT在内部使用核心基础,假设核心基础≡ 每个等价基类型的基础,即CFStk≡ NSString。还要注意的是,他们说它不安全。

    我现在聪明多了。。。☺ 我想-可能,也许。。。这是一个更好的解决方案。。。。JSONKIT提供以下基本类型映射到以下ObjytoC基础类:

    ╭───────────────┬─────────────────────╮
    │  JSON         │  Objective -C       │
    ├───────────────┼─────────────────────┤
    │  true|false   │  NSNull             │
    ├───────────────┼─────────────────────┤
    │  Number       │  NSNumber           │   
    ├───────────────┼─────────────────────┤
    │  String       │  NSString           │
    ├───────────────┼─────────────────────┤
    │  Array        │  NSArray            │
    ├───────────────┼─────────────────────┤
    │  Object       │  NSDictionary       │
    ╰───────────────┴─────────────────────╯
    
    对象是
    关联数组
    键/值哈希表
    地图
    ,或
    字典


    JSONKIT在内部使用核心基础,假设核心基础≡ 每个等价基类型的基础,即CFStk≡ NSString。还要注意的是,他们说它不安全。

    太好了,谢谢!还有一件事,JavaScrip对象到底是什么?太好了,谢谢!还有一件事,JavaScrip对象到底是什么?