如何将JSObjectRef转换为JSValueRef

时间:2018-06-22 03:40:18

标签: javascriptcore

我在Android上使用JavaScriptCore C API,并且想将地图转换为JSObject而没有stringify

JSObjectRef json = JSObjectMake(context, nullptr, nullptr);
for (int i = 0; i < keyCount; ++i) {
  std::string key = GetKeyName(keys, i);
  JSObjectSetProperty(context, json, ToJSString(context, key),
                      ToJSValue(context, MapGetAt(handle, key)),
                      nullptr, nullptr);
}

但是最后,我得到了JSObjectRef而不是JSValueRef,这是唯一可以返回到JSObjectCallAsFunctionCallback的类型。 我知道JSValueToObject可以将JSValueRef转换为JSObjectRef,有没有可以进行相反转换的函数?

1 个答案:

答案 0 :(得分:0)

重新解释演员表将为您提供帮助。 您不需要调用任何其他函数。 JSObjectRef始终是JSValueRef。