私は単純なPythonの竜巻のWebソケットサーバーを持っており、JavaScriptクライアントからメッセージを受け取ります。私はJSONデータを送信しようとしていますが、私が見つけた唯一の解決策はJsonオブジェクトを文字列Jsonに変換して送信し、もう一方ではサーバー上で文字列を解析してJsonに返します。WebソケットでJSONを送信
{
"events": [
{
"id": 0,
"new": {
"description": "blabla bla keyyys",
"keys": [
"keyyys",
"key "
],
"start": "2.000000",
"end": "7.000000",
"priority": "normal"
}
},
{
"id": 1,
"new": {
"description": "anything key ",
"keys": [
"keyyys",
"key "
],
"start": "0.761077",
"end": "10.026667",
"priority": "high"
}
}
]
}
私はそれを送信する前に、私はJSONに別の要素を追加します:
var messageValue = {};
var sendings;
messageValue["messageType"] = "mainfest";
$.getJSON("file.json", function(json) {
messageValue["data"]= json;
console.log(messageValue);
sendings = jsonToStringConvertor(messageValue);
});
var socket = new WebSocket('ws://localhost:9000/');
socket.onopen = function(event){
socket.send(sendings);
}
ここに私のJSONファイルです。 。
function jsonToStringConvertor(obj)
{
var re = JSON.stringify(obj);
return re;
}
私は、サーバーからメッセージを受信し、それを印刷することができます:
これまでのところは良いです。私は、メッセージがリストではありませんと思いますが、JSON文字列自体
ERROR:tornado.application:Uncaught exception in/
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/tornado/websocket.py", line 494, in _run_callback
result = callback(*args, **kwargs)
File "index.py", line 27, in on_message
JsonFormattedMessage = json.loads(message)[0]
KeyError: 0
'json.loads(message)[0]'とはどういう意味ですか?このメッセージは絶対に辞書ですが、リストではありません。 – Sraw