Javascript 使用JS ctypes将结构化数据传递给本机代码

Javascript 使用JS ctypes将结构化数据传递给本机代码,javascript,c,firefox-addon,jsctypes,Javascript,C,Firefox Addon,Jsctypes,我正在开发一个Firefox扩展,需要使用当前以Javascript对象形式呈现的结构化数据执行一些高速计算。 为了实现这一点,我计划编写使用js ctypes调用的C库。 有没有办法使用JS ctypes将Javascript对象传递到本机库? 数据示例: {vendors: {Oracle: {products: {Exadata: {spec1: 111, spec2: 222}, Exalogic: {spec1: 111, spec2: 222}}}, IBM: {products

我正在开发一个Firefox扩展,需要使用当前以Javascript对象形式呈现的结构化数据执行一些高速计算。 为了实现这一点,我计划编写使用js ctypes调用的C库。 有没有办法使用JS ctypes将Javascript对象传递到本机库? 数据示例:

{vendors: 
{Oracle: {products: 
{Exadata: {spec1: 111, spec2: 222}, Exalogic:
{spec1: 111, spec2: 222}}}, IBM: {products: {WebSphere: {spec1: 111, spec2:222}}}
}}

提前感谢。

您只能传入在C中有效的类型。由于C没有字典类型或类似的概念,因此您无法将这些类型传递给您的C代码。所以你基本上有两个选择:

  • 用于将此对象转换为字符串。然后,您必须找到一些可以解析JSON的C库,并允许您以某种方式使用它
  • 您可以将JavaScript数据转换为C可以直接理解的类型。例如,您可以通过每个
    供应商
    结构传入of,其中包含指向
    产品
    结构数组的指针。当然,您的C代码需要知道数组的大小-对于前一个数组,这必须是一个函数参数,对于后一个数组,这必须是一个
    Vendor
    结构字段