私はJSON文字列を取得しています。次のように文字列は次のとおりです。JSON文字列を正しく変換していないjqueryプラグイン
"{"tab":2,"changedData":{"from":{"line":20,"ch":0},"to":{"line":20,"ch":0},"text":["a"]},"cmd":"copyChunk","timestamp":1329409543902,"person":{"comradeID":"4ef37369b4812","firstName":"","lastName":"","fullName":"ben team2","nickName":"ben t.","messageCount":0,"email":"[email protected]","lastPing":1329409537308,"sessionLeader":true,"cursorPosition":{"line":0,"ch":0}}}"
私はjqueryのjsonのプラグインを通してそれを実行します。
var r = $.evalJSON(jsonstring);
しかし、それは正しく「changeData」オブジェクトを変換しません。それ以外はすべて動作しますが、changedData.from.lineとchangedData.to.lineのどちらもNaNになります。
私はまた、文字列としてchangedData.from.lineを送信し、その後数に戻ってそれを変換するために
Number(changedData.from.line)
を使用して試してみたが、それはまだNaNを返します。私は20が数字であることはほぼ肯定的ですが、以前は間違っていました。
ありがとうございます。
更新:
私は謝罪、始めと終わりの引用符は、実際には文字列の一部ではありません。コピー/ペーストの落とし穴。ここで
は、コンテキスト内のコードです:
「frame.bodyは」引用符なしで上記の投稿の文字列であるonMessage : function(frame)
{
//This function calls the handlers.
//this is fired every time we recieve a message from orbited
//this is what calls the handler functions
//body is a json string containing whatever data was sent via the send() function
delete r;
//convert the body to an object
var r = $.evalJSON(frame.body);
。
上記のコードは有効なjs構文ではありません。 JSONは有効な構文なので、受信しているものと正確には一致しません。また、データの処理に問題があることがわかります – Kato
jQueryを使用していますか?evalJSON()関数はプロトタイプ関数です(http://www.prototypejs.org/api/string/evalJSON)jQueryでこれは等価なものは.parseJSON()です。また、不正な形式の文字列だった場合、evalJSON()はエラーを返すので、データの処理方法でなければなりません。 – Jlange
jqueryのjsonプラグインを使用していますここで:http://code.google.com/p/jquery-json/また、parseJSON()も同じことをします。 – user1052474