The serialize method skips any properties that start with the prefix "$", because that is a special naming convention used by ASP.NET AJAX. You must make sure that any other properties of a JavaScript object have a corresponding mapping to deserialization targets on the server.
null is not an allowed value for value. If you are serializing a numeric value, you must specify a number for value. NaN and Number.Infinity are not allowed. If an invalid value is encountered, the serialize method throws an error.