Ich wundere mich nur über "stringify" vs "serialize" . Für mich sind sie dasselbe (obwohl ich mich irren könnte), aber in meiner Vergangenheit (meistens mit asp.net ) benutze ich sie Serialize()
und benutze sie nie Stringify()
.
Ich weiß, ich kann einen einfachen Alias in Javascript erstellen,
// either
JSON.serialize = function(input) {
return JSON.stringify(input);
};
// or
JSON.serialize = JSON.stringify;
aber ich wundere mich nur über den Unterschied zwischen den beiden und warum stringify gewählt wurde.
Zum Vergleich: So serialisieren Sie XML in C # in einen String
public static string SerializeObject<T>(this T toSerialize)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
StringWriter textWriter = new StringWriter();
xmlSerializer.Serialize(textWriter, toSerialize);
return textWriter.ToString();
}
javascript
Chase Florell
quelle
quelle
JSON.serialize = JSON.stringify
?ToString();
. Da steckt die Unebenheit.JSON.serialize(obj).toString();
oderjsonObject().toString();
... auf diese Weise würde sie meinem C # ähneln ... aber jetzt bin ich überfordert, es zu komplizieren.Antworten:
Sehen Sie sich die beiden Kommentare an, die Sie zu der Frage abgegeben haben:
und
Denken Sie jetzt daran, dass ein Objekt in JavaScript ein Hash ist (wenn Sie Prototype oder ein anderes Framework verwenden, sollte es als "spezielle Art von Hash" qualifiziert werden - aber die einfache Form funktioniert für dieses Beispiel):
Der einzige Grund, warum ein
serialize()
Javascript erforderlich sein könnte, ist das Ausschneiden der Funktionen, Verweise auf andere Objekte usw.Um noch einmal auf Ihr C # -Beispiel zurückzukommen: Wir haben gerade
.Serialize()
als unnötig herausgeschnitten. Ein Objekt ist ein Hash, es ist bereits serialisiert, eine weitere "Serialisierung" müsste ohnehin manuell in Ihrem eigenen Code erfolgen. Alles was dich verlässt ist.ToString()
.Macht
.stringify()
das jetzt mehr Sinn?quelle
.toString()
Dies liegt daran, dass die JSON- Notation 1999 nicht nach 2002 angegeben wurde (
asp.net
wird in diesem Jahr veröffentlicht). Ich denke, sie wussten nichts über dasserialize
.Spaß beiseite,
Wenn
serialization
ich das Wort höre, kommt mir als erstes die Umwandlung der Daten in Bytes in den Sinn. Hier ist JSON.stringify absolut sinnvoll, da es das Objekt in eine Zeichenfolgendarstellung und nicht in eine Bytedarstellung umwandelt.PS:
@Chase Florell, Sie können nicht einfach hinzufügen
JSON.serialize
, da dieser Code im strengen Modus in einigen Browsern tatsächlich fehlschlagen kann.da
JSON
ist nicht dein durchschnittliches Objekt.quelle
JSON
ist nicht Ihr durchschnittliches Objekt"? Ich bin nicht snarky, nur unklar, was du meinst.