benim ikame denilen olsun bir yolu önce orada mı bir nesne ı nesneye veya prototip üzerinde toJSON
geçersiz kılma olmadan ziyade kendi JSON dostu forma göre daha özgün nesne, ile çalışmak, böylece toJSON
, dönüştürür kendi , nesnenin önceden işlenmesi veya kendi sürümümü JSON.stringify
mu yazıyor?Değiştiriciyi * önce * nesneyiJSON'a mı?
Örneğin: Normal serileştirme işleminden (which is toISOString
) farklı olarak Date
örneklerini serileştirmek istediğimi varsayalım. (Bu soru değil belirli Date
için, bu sadece bir örnektir budur.) Problemdir, benim ikame Date
nesneyi görmez, bir dize (aşağıda pasajı bakınız) Date.prototype.toJSON
çünkü benim ikame önce denir görür .
var obj = {
d: new Date()
};
snippet.log(getType(obj.d)); // "[object Date]"
var json = JSON.stringify(obj, function(key, value) {
if (key === "d") {
snippet.log(getType(value)); // "string" <== Want to see a Date here
}
return value;
});
function getType(value) {
var to = typeof value;
if (to === "object") {
to = Object.prototype.toString.call(value);
}
return to;
}
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
ilk adlandırılan replacer almanın bir yolu var mı ? Date.prototype.toJSON
'u geçersiz kılmak, nesneyi önceden işlemek veya kendi JSON.stringify
'umu yazmak istemiyorum, ancak başka bir yol göremiyorum. MDN kaynaktan
Güzel. Hatta bir doküman parçasını ('JSON.stringify (new Date())'), bir belgenin tamamını tasnif ettiğiniz [istisnai durum için çalışır] (http://jsbin.com/zeciqiwawo/1), teşekkürler [9-11 adımları] (http://www.ecma-international.org/ecma-262/5.1/#sec-15.12.3). –
gerçekten hoş bir .. –