Byłem zdezorientowany, kiedy użyć tych dwóch metod analizy.
Po powtórzeniu moich danych zakodowanych w formacie json i odzyskaniu ich z powrotem za pośrednictwem ajax często wpadam w błąd co do tego, kiedy powinienem użyć JSON.stringify i JSON.parse .
Dostaję się [object,object]
do swojego pliku console.log podczas analizowania i obiektu JavaScript podczas tworzenia łańcucha.
$.ajax({
url: "demo_test.txt",
success: function(data) {
console.log(JSON.stringify(data))
/* OR */
console.log(JSON.parse(data))
//this is what I am unsure about?
}
});
javascript
json
HIRA THAKUR
źródło
źródło
json.stringify(json.parse(data))
.Odpowiedzi:
JSON.stringify
zamienia obiekt JavaScript w tekst JSON i przechowuje ten tekst JSON w ciągu, np .:JSON.parse
zamienia ciąg tekstu JSON w obiekt JavaScript, np .:źródło
JSON.parse()
służy do „analizowania” czegoś, co otrzymano jako JSON.JSON.stringify()
jest utworzenie łańcucha JSON z obiektu / tablicy.źródło
JSON.stringify(3)
Są odwrotni do siebie.
JSON.stringify()
serializuje obiekt JS do ciągu JSON, aJSON.parse()
deserializuje ciąg JSON do obiektu JS.źródło
Są przeciwieństwami.
JSON.stringify ()
JSON.stringify () serializuje obiekt JS lub wartość do ciągu JSON.
JSON.parse ()
Metoda JSON.parse () analizuje ciąg znaków jako JSON, opcjonalnie przekształcając wygenerowaną wartość.
źródło
parse()
byłobyobjectify()
lubjsonify()
.jsonify()
byłoby niejasne i mylące, ponieważparse()
nie nie konwertowaćString
doJSON
typu (co jest, cojsonify()
będzie wskazuje), aleparse()
konwertuje JSON sformatowanyString
do każdego z:Object
,Array
,Number
,String
,Boolean
lubnull
. Ludzie często mylą „ciąg znaków” JSON iObject
(lubdict
w Pythonie itp.).Po pierwsze,
JSON.stringify()
funkcja konwertuje wartość JavaScript na ciąg JavaScript Object Notation (JSON).JSON.parse()
funkcja konwertuje ciąg JSON (JavaScript Object Notation) na obiekt. Więcej informacji na temat tych dwóch funkcji można znaleźć w poniższych linkach.https://msdn.microsoft.com/library/cc836459(v=vs.94).aspx https://msdn.microsoft.com/library/cc836466(v=vs.94).aspx
Po drugie, poniższy przykład pomoże ci zrozumieć te dwie funkcje.
źródło
// Dane wyjściowe będą:
// Dla 1. konsoli jest ciągiem jak:
// Dla drugiej konsoli jest obiekt taki jak:
źródło
JSON.stringify()
Konwertuje obiekt na ciąg.JSON.parse()
Konwertuje ciąg JSON na obiekt.źródło
Prawdziwe zamieszanie tutaj nie dotyczy parsowania vs stringify, lecz typu danych
data
parametru wywołania zwrotnego sukcesu.data
może być surową odpowiedzią, tzn. łańcuchem, lub może być obiektem JavaScript, zgodnie z dokumentacją:A dataType domyślnie przyjmuje ustawienie „inteligentnego zgadywania”
źródło
Obiekt JavaScript <-> Ciąg JSON
JSON.stringify (obj) - Bierze dowolny obiekt możliwy do serializacji i zwraca reprezentację JSON jako ciąg znaków.
JSON.parse (ciąg) - Pobiera dobrze sformułowany ciąg JSON i zwraca odpowiedni obiekt JavaScript.
Objaśnienie: JSON.stringify (obj [, replaceer [, spacja]]);
Replacer / Space - opcjonalny lub przyjmuje wartość całkowitą lub można wywołać funkcję return typu interger.
źródło
Są kompletnym przeciwieństwem siebie.
JSON.parse()
służy do analizowania danych odebranych jako JSON ; to deserializes na ciąg JSON do obiektu JavaScript .JSON.stringify()
z drugiej strony służy do tworzenia łańcucha JSON z obiektu lub tablicy ; to serializes do obiektu JavaScript w ciąg JSON .źródło
Nie wiem, czy zostało wspomniane, ale jednym z zastosowań JSON.parse (JSON.stringify (myObject)) jest utworzenie klonu oryginalnego obiektu.
Jest to przydatne, gdy chcesz zepsuć niektóre dane bez wpływu na oryginalny obiekt. Prawdopodobnie nie jest to najczystszy / najszybszy sposób, ale z pewnością najprostszy dla obiektów, które nie są bardzo złożone.
źródło
JSON.stringify(obj [, replacer [, space]])
- Bierze dowolny obiekt możliwy do serializacji i zwraca reprezentację JSON jako ciąg znaków.JSON.parse(string)
- Pobiera dobrze sformatowany ciąg JSON i zwraca odpowiedni obiekt JavaScript.źródło
Przeciwstawiają się sobie.
JSON.Stringify()
konwertuje JSON na ciąg iJSON.Parse()
analizuje ciąg na JSON.źródło
JSON: Służy głównie do wymiany danych do / z serwera. Przed wysłaniem obiektu JSON na serwer musi to być ciąg znaków.
Konwertuje również tablicę JavaScript na ciąg znaków
Gdy otrzymamy dane JSON z serwera, dane będą miały format ciągów, dlatego konwertujemy ciąg na obiekt JSON.
źródło
JSON.parse()
służy do konwersji ciągu na obiekt.JSON.stringify()
służy do konwersji Object na String.Możesz to również odnieść ...
źródło
JSON.parse () pobiera ciąg JSON i przekształca go w obiekt JavaScript.
JSON.stringify () pobiera obiekt JavaScript i przekształca go w ciąg JSON.
I chociaż metody są zwykle stosowane na obiektach, mogą być również stosowane na tablicach:źródło