JavaScript „Obiect la șir” folosind JSON.stringify()

JavaScript „Obiect la șir” folosind JSON.stringify()

JavaScript „Obiect la șir” folosind JSON.stringify()

În timp ce dezvoltați o aplicație JavaScript, uneori veți dori să vă serializați datele într-un șir simplu. Acest lucru poate fi util pentru lucruri precum:

  • Stocarea datelor obiectului într-o bază de date
  • Ieșirea datelor obiectului către consolă pentru depanare
  • Trimiterea datelor obiectului prin AJAX sau către un API

Sintaxa simplă pentru conversia unui obiect într-un șir este:

JSON.stringify(valoare)

Sintaxa completă este:

JSON.stringify(valoare[, înlocuitor[, spațiu]])

Notă: în sensul acestui articol, ori de câte ori spunem „obiect” ne referim la „obiect, matrice sau valoare”. Am avut-o invers inițial, dar ne-am dat repede seama că a devenit enervant de citit.

Exemple de trecere de la un obiect la un șir

Să vedem câteva exemple simple. Rețineți că întregul șir primește ghilimele duble și toate datele din șir sunt eliminate dacă este necesar.

JSON.stringify(„foo bar”); // „”foo bar”” JSON.stringify([„foo”, “bar”]); // „[“foo”,”bar”]” JSON.stringify({}); // ‘{}’ JSON.stringify({‘foo’:true, ‘baz’:false}); // „{“foo”:true,”baz”:false}”

Toate acestea sunt destul de simple. Este extrem de util pentru scopuri de depanare și pentru a vedea toate datele din obiectele și matricele JavaScript. Există alți doi parametri care pot fi introduși în funcția JSON.stringify() și îi vom analiza mai jos. Este minunat de știut, dar sunt folosite rar.

Filtrarea ieșirii

Pentru mai mult control asupra ieșirii stringify, puteți trece o matrice de câmpuri de șir sau numere care va acționa ca un filtru de selecție pentru ieșirea stringify:

var obj = {nume: „foo”, id: 1, vârsta: 45}; JSON.stringify(obj, [‘nume’, ‘id’]); // iese: {“nume”:”foo”,”id”:1}”

De asemenea, puteți defini o funcție de înlocuire pentru a obține mai mult control asupra ieșirii șirului rezultat.

function replacer(cheie, valoare) { if (cheie === „varsta”) { return value + ‘ani’; } valoare returnată; }//end înlocuitor var obj = {nume: „foo”, id: 1, vârsta: 45}; JSON.stringify(obj, înlocuitor); // iese: „{“name”:”foo”,”id”:1,”age”:”45 years”}”

Orice altă manipulare a perechilor cheie-valoare este posibilă cu controlul funcției de înlocuire.

Indentați ieșirea

Va trebui adesea să indentați rezultatul stringify pentru o mai bună lizibilitate. Puteți face acest lucru folosind un număr de spații sau un șir, cum ar fi un caracter TAB. De cele mai multe ori, indentarea implicită va funcționa bine , dar dacă trebuie să o modificați, așa se face.

Indentarea cu TAB

Să indentăm următoarele date JSON cu un caracter TAB: t

JSON.stringify( { ‘foo’:1, ‘bar’:2, ‘baz’:{ ‘quux’:3 } }, null, ‘t’);

Aceasta va scoate:

„{ „foo”: 1, „bar”: 2, „baz”: { „quux”: 3 } }”

Putem vedea că fiecare adâncime a obiectului va primi o indentare TAB suplimentară. Rețineți, de asemenea, că argumentul înlocuitor este „null” aici, deoarece nu îl folosim.

Indentarea cu spații

Să indentăm același obiect cu patru spații:

JSON.stringify( { ‘foo’:1, ‘bar’:2, ‘baz’:{ ‘quux’:3 } }, null, 2);

Ieșire:

„{ „foo”: 1, „bar”: 2, „baz”: { „quux”: 3 } }”

Trecerea de la un șir la un obiect

Ce se întâmplă dacă doriți să luați un șir și să îl convertiți înapoi într-un obiect sau o matrice?

JSON.parse() parsează un șir ca JSON, așa că va prelua o valoare și va afișa o valoare JSON. Prin urmare, este opusul JSON.stringify() .

Este suficientă distracție de stringificare pentru moment. Manipularea JSON în formatul șir este destul de ușor de făcut, dar, ca întotdeauna, dacă tot ești blocat, trimite-ne un rând mai jos.

Dezvăluirea agentului de publicitate

Gazduirweb este o resursă online gratuită care oferă utilizatorilor conținut valoros și servicii de comparare. Pentru a menține această resursă 100% gratuită, primim compensații de la multe dintre ofertele afișate pe site. Alături de factorii cheie de revizuire, această compensație poate afecta modul în care și locul în care apar produsele pe site (inclusiv, de exemplu, ordinea în care apar). Gazduirweb nu include întregul univers al ofertelor disponibile. Opiniile editoriale exprimate pe site sunt strict ale noastre și nu sunt furnizate, susținute sau aprobate de agenții de publicitate.

Politica noastră de revizuire editorială

Site-ul nostru se angajează să publice conținut independent, precis, ghidat de reguli editoriale stricte. Înainte ca articolele și recenziile să fie publicate pe site-ul nostru, acestea sunt supuse unui proces amănunțit de revizuire efectuat de o echipă de editori independenți și experți în materie pentru a asigura acuratețea, actualitatea și imparțialitatea conținutului. Echipa noastră editorială este separată și independentă de agenții de publicitate ai site-ului nostru, iar opiniile pe care le exprimă pe site-ul nostru sunt proprii. Pentru a citi mai multe despre membrii echipei noastre și despre mediul lor editorial, vă rugăm să vizitați pagina Despre a site-ului nostru.

Leave a Reply

Copyright © 1999 - 2022 Phox Operating Company