I'm just wondering about "stringify" vs "serialize". To me they're the same thing (though I could be wrong), but in my past experience (mostly with asp.net) I use Serialize()
and never use Stringify()
.
I know I can create a simple alias in Javascript,
// either
JSON.serialize = function(input) {
return JSON.stringify(input);
};
// or
JSON.serialize = JSON.stringify;
but I'm just wondering about the difference between the two and why stringify was chosen.
for comparison purpose, here's how you serialize XML to a String in C#
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();
}
Best Answer
Take a closer look at the two comments you've put onto the question:
and
Now remember that in Javascript, an object is a hash (rather, if using Prototype or another framework, it should be qualified as a "special kind of hash" - but the simple form works for this example):
The only reason a
serialize()
might be necessary in Javascript is to cut out the functions, references to other objects, etc.So, to go back to your C# example - we've just cut out
.Serialize()
as unnecessary. An object is a hash, it's already serialized, further "serialization" would have to be done manually in your own code anyway. All that leaves you is.ToString()
.Does
.stringify()
make more sense now?