1

node.jsクライアント側から ajax 呼び出しを使用してプレーン テキスト ファイルを読み込んでいます。

結果 : success gives the result as below.

 ""[{\"x\":233,\"y\":279,\"count\":1},{\"x\":256,\"y\":243,\"count\":6}]\n[{\"x\":233,\"y\":279,\"count\":1},{\"x\":256,\"y\":243,\"count\":6}]\n""

上記の結果を解析した後:

   JSON.parse(result);

  "[{"x":233,"y":279,"count":1},{"x":256,"y":243,"count":6}] [{"x":233,"y":279,"count":1},{"x":256,"y":243,"count":6}] "

この文字列をオブジェクトの配列に変更したいのですが、

期待される結果はオブジェクトの配列です:

   [{"x":233,"y":279,"count":1},{"x":256,"y":243,"count":6},
    {"x":233,"y":279,"count":1},{"x":256,"y":243,"count":6}
   ]

Ajax 呼び出しコード

$.ajax({
        url: document.URL + "getData",
        method : "GET",
        success: function (result) {
            var info = JSON.parse(result);
            var object = JSON.parse(info);
            console.log(object);

        }
});

どんなアイデアでも役に立ちます。

4

2 に答える 2

2

二重にエンコードされた JSON を取得しただけのように見えます。もう一度実行してJSON.parse()ください。

編集実際には、それは正しくありません-出力には、セパレーターがあり、配列を囲んでいない2つのJS配列が含まれています。\nもう一度解析できるようにするには、データを少し操作する必要があります (今見てください)。

EDIT2これは機能しているように見えますが、現在のvar res行には正当ではない周囲の引用符の余分なペアが含まれているため、このテストではそれらを削除しました:

var res =  "[{\"x\":233,\"y\":279,\"count\":1},{\"x\":256,\"y\":243,\"count\":6}]\n[{\"x\":233,\"y\":279,\"count\":1},{\"x\":256,\"y\":243,\"count\":6}]\n"

var out = JSON.parse(res.replace(/]\s*\[/g, ','));
于 2013-06-07T08:02:28.193 に答える