JSONデータを下記のように準備し、
Javascript
1 var json_asocc = 2 [ 3 { 4 'maker' : 'Rover', 5 'model' : 'MINI', 6 'grade' : 'Cooper 35th Anniversary' 7 } 8 ]; 9 10 //JSONにエンコード 11 var json_text = JSON.stringify(json_asocc); 12 sendData = json_text;
prmに入れ、下記のように送信し、
javascript
1client = new net.createConnection(sndPort, host) 2 .on('connect', function() { 3 try { 4 client.write(prm) 5 client.destroy(); 6 resolve(); 7 } catch(error) { 8 client.destroy(); 9 reject(); 10 }
下記のように受信しています。
Javascript
1const http2 = require('http'); 2var server = http2.createServer(); 3var rcvPort = 7000; 4 5 server.listen(rcvPort); 6 7 server.on('connection', (sock) => { 8 console.log('sock connected'); 9 10 sock.on('data', function(data){ 11 console.log(' received '+data.length+'bytes'); 12 console.log(data); 13 console.log(JSON.stringify(data)); 14 for (var i=0; i<data.length; i++) { 15 console.log(String.fromCharCode(JSON.stringify(data[i]))); 16 } 17 }); 18 19 sock.on('close', function(){ 20 console.log('sock connection closed'); 21 });
このとき、受信側のコンソール出力は下記のようになります。
<Buffer 5b 7b 22 6d 61 6b 65 72 22 3a 22 52 6f 76 65 72 22 2c 22 6d 6f 64 65 6c 22 3a 22 4d 49 4e 49 22 2c 22 67 72 61 64 65 22 3a 22 43 6f 6f 70 65 72 20 33 ... 18 more bytes> {"type":"Buffer","data":[91,123,34,109,97,107,101,114,34,58,34,82,111,118,101,114,34,44,34,109,111,100,101,108,34,58,34,77,73,78,73,34,44,34,103,114,97,100,101,34,58,34,67,111,111,112,101,114,32,51,53,116,104,32,65,110,110,105,118,101,114,115,97,114,121,34,125,93]} [ { " m a k e r " : " R o v e r " , "
受信側で受信したデータがすべてASCIIになっています。
このデータをJSONとして扱うためには、ダブルクォーテーション、カンマなどを頼りにして泥臭く自力で変換する必要があるのでしょうか?
それともこれをJSONとして扱うor変換する方法はあるでしょうか?
もしくはjson形式で送受信をしたければ、下記のようにXMLHttpRequestオブジェクトを使用しなければならないのでしょうか?
http://www.fineblue206.net/archives/677
初歩的な質問で申し訳ありませんが、教えていただけると幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/30 03:07