Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ป้องกันไม่ให้ JSON.stringify() ลบ Function ใน Object

JSON.stringify() ไม่ได้แค่ stringify object แต่ยัง ลบ function ที่อยู่ใน object ด้วย เพื่อให้ function ไม่ถูกลบ ต้องแปลงเป็น string ก่อนแล้วค่อย stringify

ตัวอย่าง: function ไม่ได้แปลงเป็น string ถูกลบตอน stringify เหลือ properties อื่นๆ

ตัวอย่างที่ 1 (Function ถูกลบ)

<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"}

ตัวอย่างที่ 2: แปลง function เป็น string ด้วย toString() ก่อน stringify function จึงไม่ถูกลบ

ตัวอย่างที่ 2 (Function ไม่ถูกลบ)

<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"}