私はSocket.IOを使ってデータをブラウザに移動しています。送信されるデータはJSONオブジェクトのストリームで、ブラウザに到着するとJSONの大きな文字列になります。問題は、このJSONはJSON.parse()によって解析できません。なぜなら、実際のJSONではないからです。ブラウザで連結されたJSONの文字列を解析する方法は?
データ構造は任意であるため、RegExはこのトリックを行わない可能性があります。そして、この現在の設定は一時的なものです。最終的にこのストリームのJSONはサーバー側で事前処理されるため、ストリームをブラウザに送信する必要はありません。そこで、AJAX/Socket.IOの設定を維持しておきたいと思います。 JSONストリームパーサOboeJSのように。
連結されたJSONのこの文字列を解析するにはどうすればよいですか?明確にするために
、JSONは次のようになります。
{"a":"A"}{"b":"B"}{"c":"C"}
そして私は、私は同じようにアクセスできるような方法でそれを解析しようとしている:
console.log(Object.a) //A
console.log(Object.b) //B
console.log(Object.c) //C
あなたがいるかのようにデータを操作しますかJSONを受け取った?データはいつも '{} {} {} {}'の形式になっていますか? – Dropout
@Dropoutはい、そうです。そして、それは連結されたJSONになるという意味で常に '{} {} {} {}'の形式になりますが、それは単純化しています。各JSONは '{{} {}} {} {} {}'のようなネストされたデータを持つかもしれません。または '{" a ":"これは有効なJSON} "}' – markovchain
のようなJSONではないかもしれません。いくつかのJSONを連結しただけの場合は、それらを分割して配列の 'JSON.parse'を呼び出すことができますが、{{}} {{{}} {} {{}}} { {}}あなたは本当にそれが本当に何かによってすぐに解析されるとは期待できません。そのようなことにルールを適用するのは難しいからです。これはガベージ入力データです。 *翻訳するものを実装する必要があるように見えます。 – Dropout