node.js コードに、循環参照を含む JSON オブジェクトがあります。このデータをブラウザーに送信するために、NPM モジュールの circle-jsonを使用してオブジェクトを文字列化し、循環参照をシリアル化しました。
var CircularJSON = require("circular-json");
app.get("/api/entries", function(req, res){
contentClient.entries({"content_type": "xxxxxxxxxxx"}, function(err, entries){
if (err) throw err;
res.send(CircularJSON.stringify(entries));
});
});
これは問題なく動作し、シリアル化されたデータを送信しres.send();
ます。フロントエンドの Angular コードで、循環参照を使用できるようにする必要があります。オブジェクトのシリアル化されたフィールドの 1 つは、クライアント側では次のようになります。"~0~fields~twitter~1"
ブラウザで次のことを試しました。
circular-json.js
のバージョンをフロントエンド サイトにコピーしましたindex.html
私のようにスクリプトにリンクされています:<script src="/framework/lib/circular-json.js"></script>
CircularJson
次のように変数を設定します。var CircularJSON = window.CircularJSON;
着信 JSON を次のように解析します。
$http.get("/api/entries").then(function(res){ console.log(CircularJSON.parse(res.data[0])); });
次のエラーが表示されます。
SyntaxError: Unexpected token o