質問

(サイを使用しています)SmartfoxServerするためのサーバ側の拡張で

私はこれに類似のJavascriptの作品を持っています:

response["xpos"] = properties.get("xpos");
send(JSON.stringify(response));

このエラーを引き起こしました。何が起こった?プロパティは、Java Mapがあるので数がそれに置かれたとき、それはjava.lang.Doubleオブジェクトにautoboxedています。それを取得し、response["xpos"]に格納する際にしたがって、その結果は、通常のJavascriptの数が、型JavaObjectjava.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

これは、文字列は、一般的にだけでなくネイティブJavaScriptの文字列にjava.lang.StringでからRhinoで変換する方法である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top