Ce face JSON.rawJSON / isRawJSON
JSON.stringify scrie numerele JavaScript, care sunt exacte doar până la 253 − 1. Un id de 64 de biți păstrat ca BigInt nu poate fi scris direct. JSON.rawJSON(text) creează o valoare specială pe care JSON.stringify o scrie exact ca textul dat.
Textul trebuie să fie o valoare JSON simplă validă (număr, text între ghilimele, true, false, null), nu un obiect sau un tablou. JSON.isRawJSON verifică dacă o valoare a fost creată cu rawJSON.
Parametri
| Parametru | Descriere |
|---|---|
textJson |
Textul JSON al unei valori simple. |
Ce returnează
rawJSON: un obiect special, înghețat. isRawJSON: true sau false.
Exemple
Exemplul 1: Un id BigInt scris exact
const id = 12345678901234567890n;
console.log(JSON.stringify({ id: Number(id) }));
console.log(JSON.stringify({ id: JSON.rawJSON(id.toString()) }));
console.log(JSON.stringify({ id }, (k, v) => (typeof v === "bigint" ? JSON.rawJSON(v.toString()) : v)));
console.log(JSON.isRawJSON(JSON.rawJSON("1")), JSON.isRawJSON(1));
Rezultat
{"id":12345678901234567000}
{"id":12345678901234567890}
{"id":12345678901234567890}
true false
Greșeli frecvente
- Dai un obiect sau un tablou:
JSON.rawJSON('{"a":1}')aruncăSyntaxError. Merge doar pentru valori simple.
Comenzi înrudite
JSON.stringify: Transformă un obiect sau tablou JavaScript în text JSON.BigInt: Numere întregi de orice mărime, fără pierdere de precizie; se scriu cu n la final.JSON.parse: Transformă un text JSON într-un obiect sau tablou JavaScript.