অনুযায়ী মোজিলার তাদেরকে JSON ডক্স , JSON.Stringifyএকটি দ্বিতীয় প্যারামিটার রয়েছে censorযা / ফিল্টার ব্যবহার করা যেতে পারে শিশু আইটেম উপেক্ষা যখন গাছ পার্স। তবে, সম্ভবত আপনি বিজ্ঞপ্তি উল্লেখ এড়াতে পারেন।
নোড.জেজে আমরা পারি না। সুতরাং আমরা এর মতো কিছু করতে পারি:
function censor(censor) {
var i = 0;
return function(key, value) {
if(i !== 0 && typeof(censor) === 'object' && typeof(value) == 'object' && censor == value)
return '[Circular]';
if(i >= 29) // seems to be a harded maximum of 30 serialized objects?
return '[Unknown]';
++i; // so we know we aren't using the original object anymore
return value;
}
}
var b = {foo: {bar: null}};
b.foo.bar = b;
console.log("Censoring: ", b);
console.log("Result: ", JSON.stringify(b, censor(b)));
ফলাফল:
Censoring: { foo: { bar: [Circular] } }
Result: {"foo":{"bar":"[Circular]"}}
দুর্ভাগ্যক্রমে এটি স্বয়ংক্রিয়ভাবে বিজ্ঞপ্তিটি ধরে নেওয়ার আগে সর্বোচ্চ 30 টি পুনরাবৃত্তি বলে মনে হচ্ছে। অন্যথায়, এটি কাজ করা উচিত। আমি এমনকি areEquivalent এখান থেকে ব্যবহার করেছি , তবে JSON.Stringify30 টি পুনরাবৃত্তির পরেও ব্যতিক্রম ছুঁড়েছি। তবুও, যদি আপনার সত্যিই এটির প্রয়োজন হয় তবে এটি শীর্ষ স্তরে অবজেক্টের একটি ভাল প্রতিনিধিত্ব পাওয়ার পক্ষে যথেষ্ট। সম্ভবত কেউ এই উন্নতি করতে পারেন যদিও? কোনও HTTP অনুরোধের জন্য নোড.জেজে, আমি পাচ্ছি:
{
"limit": null,
"size": 0,
"chunks": [],
"writable": true,
"readable": false,
"_events": {
"pipe": [null, null],
"error": [null]
},
"before": [null],
"after": [],
"response": {
"output": [],
"outputEncodings": [],
"writable": true,
"_last": false,
"chunkedEncoding": false,
"shouldKeepAlive": true,
"useChunkedEncodingByDefault": true,
"_hasBody": true,
"_trailer": "",
"finished": false,
"socket": {
"_handle": {
"writeQueueSize": 0,
"socket": "[Unknown]",
"onread": "[Unknown]"
},
"_pendingWriteReqs": "[Unknown]",
"_flags": "[Unknown]",
"_connectQueueSize": "[Unknown]",
"destroyed": "[Unknown]",
"bytesRead": "[Unknown]",
"bytesWritten": "[Unknown]",
"allowHalfOpen": "[Unknown]",
"writable": "[Unknown]",
"readable": "[Unknown]",
"server": "[Unknown]",
"ondrain": "[Unknown]",
"_idleTimeout": "[Unknown]",
"_idleNext": "[Unknown]",
"_idlePrev": "[Unknown]",
"_idleStart": "[Unknown]",
"_events": "[Unknown]",
"ondata": "[Unknown]",
"onend": "[Unknown]",
"_httpMessage": "[Unknown]"
},
"connection": "[Unknown]",
"_events": "[Unknown]",
"_headers": "[Unknown]",
"_headerNames": "[Unknown]",
"_pipeCount": "[Unknown]"
},
"headers": "[Unknown]",
"target": "[Unknown]",
"_pipeCount": "[Unknown]",
"method": "[Unknown]",
"url": "[Unknown]",
"query": "[Unknown]",
"ended": "[Unknown]"
}
এটি করার জন্য আমি একটি ছোট নোড.জেএস মডিউল তৈরি করেছি: https://github.com/ericmuyser/stringy উন্নত / অবদান রাখতে নির্দ্বিধায়!
pagedoc?