在 SmartfoxServer(使用 Rhino)的服务器端扩展中,我有一段类似的 Javascript:
response["xpos"] = properties.get("xpos");
send(JSON.stringify(response));
这导致了错误。发生了什么?因为 properties 是一个 Java Map
,当一个数字被放入其中时,它会被自动装箱到一个java.lang.Double
对象中。因此,在检索它并将其存储在 中时response["xpos"]
,结果不是一个常规的 Javascript 数字,而是一个JavaObject
类型java.lang.Double
。该JSON.stringify
函数并不打算处理它并且它崩溃了。
我用这样的 hack 修复了它:
response["xpos"] = 1.0 * properties.get("xpos");
send(JSON.stringify(response));
有没有更好的办法?