Prototype และ JSON Tutorial
รู้เบื้องต้นเกี่ยวกับ JSON
JSON (JavaScript Object Notation) เป็นรูปแบบการแลกเปลี่ยนข้อมูลที่มีน้ำหนักเบา
JSON เป็นเรื่องง่ายสำหรับมนุษย์ในการอ่านและเขียน
JSON เป็นเรื่องง่ายสำหรับเครื่องในการแยกวิเคราะห์และสร้าง
JSON ขึ้นอยู่กับส่วนย่อยของภาษาโปรแกรม JavaScript
JSON ถูกใช้โดย API ทั่วทั้งเว็บและเป็นทางเลือกที่รวดเร็วสำหรับ XML ในคำขอ Ajax
JSON เป็นรูปแบบข้อความที่เป็นอิสระจากภาษาโดยสิ้นเชิง
Prototype 1.5.1 และเวอร์ชันที่ใหม่กว่ามีการเข้ารหัส JSON และรองรับการแยกวิเคราะห์
การเข้ารหัส JSON
Prototype มีวิธีการเข้ารหัสดังต่อไปนี้ -
NOTE - ตรวจสอบให้แน่ใจว่ามี prototype js เวอร์ชัน 1.6 เป็นอย่างน้อย
ส. | วิธีการและคำอธิบาย |
---|---|
1. | Number.toJSON ()
ส่งคืนสตริง JSON สำหรับ Number ที่กำหนด |
2. | สตริง. toJSON ()
ส่งคืนสตริง JSON สำหรับสตริงที่กำหนด |
3. | Array.toJSON ()
ส่งคืนสตริง JSON สำหรับ Array ที่กำหนด |
4. | Hash.toJSON ()
ส่งคืนสตริง JSON สำหรับ Hash ที่กำหนด |
5. | วันที่. toJSON ()
แปลงวันที่เป็นสตริง JSON (ตามรูปแบบ ISO ที่ใช้โดย JSON) |
6. | Object.toJSON ()
ส่งคืนสตริง JSON สำหรับวัตถุที่กำหนด |
หากคุณไม่แน่ใจเกี่ยวกับประเภทของข้อมูลที่คุณต้องเข้ารหัสทางออกที่ดีที่สุดของคุณคือใช้ Object.toJSON ดังนั้น -
var data = {name: 'Violet', occupation: 'character', age: 25 };
Object.toJSON(data);
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
'{"name": "Violet", "occupation": "character", "age": 25}'
นอกจากนี้หากคุณกำลังใช้วัตถุที่กำหนดเองคุณสามารถกำหนดวิธีการ toJSON ของคุณเองซึ่งจะถูกใช้โดยObject.toJSON ตัวอย่างเช่น -
var Person = Class.create();
Person.prototype = {
initialize: function(name, age) {
this.name = name;
this.age = age;
},
toJSON: function() {
return ('My name is ' + this.name +
' and I am ' + this.age + ' years old.').toJSON();
}
};
var john = new Person('John', 49);
Object.toJSON(john);
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
'"My name is John and I am 49 years old."'
การแยกวิเคราะห์ JSON
ใน JavaScript โดยทั่วไปการแยกวิเคราะห์ JSON ทำได้โดยการประเมินเนื้อหาของสตริง JSON Prototype แนะนำString.evalJSONเพื่อจัดการกับสิ่งนี้ ตัวอย่างเช่น -
var d='{ "name":"Violet","occupation":"character" }'.evalJSON();
d.name;
สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -
"Violet"
ใช้ JSON กับ Ajax
การใช้ JSON กับ Ajax นั้นตรงไปตรงมามาก เพียงแค่เรียกใช้String.evalJSONบนคุณสมบัติ responseText ของการขนส่ง -
new Ajax.Request('/some_url', {
method:'get',
onSuccess: function(transport) {
var json = transport.responseText.evalJSON();
}
});
หากข้อมูลของคุณมาจากแหล่งที่ไม่น่าเชื่อถือโปรดแน่ใจว่าได้ฆ่าเชื้อแล้ว -
new Ajax.Request('/some_url', {
method:'get',
requestHeaders: {Accept: 'application/json'},
onSuccess: function(transport) {
var json = transport.responseText.evalJSON(true);
}
});