JSON.stringify()方法不仅对对象进行字符串化 ,而且还删除了在该对象内部发现的所有函数 。因此,要使该函数 不被删除, 应将其转换为字符串,然后仅应使用JSON.stringify()方法。
在以下示例中,由于该函数 未转换为字符串,因此在通过JSON.stringify()方法进行操作时将其删除,并显示其他属性,如输出所示。
<html> <body> <p id="stringify"></p> <script> var person = { name: function () {return Ram + Rahim;}, designation:"Developer" , city: "Hyderabad" }; var myJSON = JSON.stringify(person); document.getElementById("stringify").innerHTML = myJSON; </script> </body> </html>
输出结果
{"designation":"Developer","city":"Hyderabad"}
在以下示例中,在通过JSON.stringify()方法进行操作之前,已使用to String()方法将函数 转换为字符串。因此,当通过JSON.stringify()方法进行操作时,不会删除该函数。
<html> <body> <p id="stringify"></p> <script> var obj = { name: function () {return Ram + Rahim;}, designation:"Developer" , city: "Hyderabad" }; obj.name = obj.name.toString(); var myJSON = JSON.stringify(obj); document.getElementById("stringify").innerHTML = myJSON; </script> </body> </html>
输出结果
{"name":"function () {return Ram + Rahim;}","designation":"Developer","city":"Hyderabad"}