犀牛的typeof和自动装箱混乱
-
27-09-2019 - |
题
在服务器侧扩展SmartfoxServer(使用犀牛)我有一个类似的片的Javascript:
response["xpos"] = properties.get("xpos");
send(JSON.stringify(response));
这导致错误。发生了什么?因为性是一个Java Map
,当大量投入它,它autoboxed成java.lang.Double
对象。因此,检索数据并将其保存在response["xpos"]
的时候,结果不是常规的JavaScript数量,但类型JavaObject
的java.lang.Double
。该JSON.stringify
功能并不意味着句柄和坠毁。
余像这样一个黑客固定它:
response["xpos"] = 1.0 * properties.get("xpos");
send(JSON.stringify(response));
有没有更好的办法?
解决方案
可以使用Number(properties.get("xpos"))
,如下面的交互式控制台会话:
js> x=java.lang.Double(2)
2.0
js> typeof x
object
js> x instanceof java.lang.Double
true
js> y=Number(x)
2
js> typeof y
number
这是如何字符串犀牛通常被转化从java.lang.String中到本地JavaScript字串。
不隶属于 StackOverflow