2016-10-09 17 views
0

私は、サーバからクライアントへの複数の配列の受け渡しを必要とするnodejs/socketプロジェクトを持っています。クライアントはJquery Datatablesを使用して配列からテーブルを構築します。配列オブジェクトが1つだけの場合は、stringify/parseを使わずにそのまま渡すことができます。しかし、私は複数の配列を持っていると問題があります。ソケットnodejsクライアントに渡すオブジェクトの配列を扱う方法

だから私は、配列myobjectofArraysのオブジェクトを作成し、すべての私のobjectArraysにmyobjectofArraysを割り当てます。これで、例えば、myobjectofArrays.objectArray1.lengthというオブジェクトにアクセスして、objectArray1の長さを指定することができます。ここまでは順調ですね。

socket.emit("arrays", {myobjectofArrays:JSON.stringify(myobjectofArrays)}) 

としてそれを受け入れる:私はmyobjectofArraysにを送信しようとすると、問題がある行で予期しない文字:にSyntaxError:JSON.parse

socket.on('arrays',function(data) 
     { 
     var newdata=JSON.parse(data); 
     }); 

私は、JSONの構文解析エラーが発生しますJSONデータの1列2。

docsは悪いJSON構成を話しますが、私がServer側で解析すると、myobjectofArraysは前と同じように複数の配列プロパティを持つオブジェクトに戻ります。そして、文字列化のコンソールログが下に複数のarrays..seeサンプルを示した:

console.log("myobjectofArrys json: "+myobjectofArrays); 

結果:私はこのエラーを取得していますなぜ

myobjectofArrays json: {**"rpamessageArray"**:[{"messageid":0,"make":"car0","model":"Model0 
","part":"Part0","price":"9999.99","instock":false},{"messageid":1,"make":"car1" 
,"model":"Model1","part":"Part1","price":"9999.99","instock":false},{"messageid" 
:2,"make":"car2","model":"Model2","part":"Part2","price":"9999.99","instock":fal 
se},},{"messageid":3,".........,"price":"9999.99","instock":false}],"}],"**ordersArray**":[{"messageid":0,"ordernumber" 
:0,"customer":"name0","contact":"555-1230","make":"car0","model":"Model0","part" 
:"Part0","price":"9999.99","shipping":"Pickup","payment":"cc-mobile","confirm":t 
rue},{"messageid":1,"ordernumber":1,"customer":"name1","contact":"555-1234","mak 
e":"car1","model":"Model1","part":"Part1","price":"9999.99","shipping":"Pickup", 
"payment":"cc-mobile","confirm":true},{".........] 

誰もが言うことはできますか?どんな助けもありがとう。

+0

にこの

socket.emit("arrays", {myobjectofArrays:JSON.stringify(myobjectofArrays)}) 

を変更するには、JSON文字列

てみている一つのキーを持つオブジェクトを送信します。 server.logを解析してクライアント側を解析し、それがどのように見えるかを確認します。 – Darkrum

答えて

3

ないsocket.ioの専門家ではなく、...

Socket.emitは()JSONを送信していません。そのアスペクトあなたのJSONは、輸送中に変化させませんでしたしません。この

socket.emit("arrays", JSON.stringify(myobjectofArrays)) 
+0

"試してくれてありがとう"と思ってくれてありがとう。 – MichaelE

関連する問題