Dapatkah seseorang memberi tahu saya apa perbedaan antara 2 pengurai JSON?
https://github.com/douglascrockford/JSON-js/blob/master/json.js
https://github.com/douglascrockford/JSON-js/blob/master/json2.js
Saya memiliki file JSON dari 2007-04-13 (Ini memiliki metode seperti parseJSON
). Saya tidak melihat metode ini di salah satu versi baru.
Jawaban:
Dari kode mereka:
// Augment the basic prototypes if they have not already been augmented. // These forms are obsolete. It is recommended that JSON.stringify and // JSON.parse be used instead. if (!Object.prototype.toJSONString) { Object.prototype.toJSONString = function (filter) { return JSON.stringify(this, filter); }; Object.prototype.parseJSON = function (filter) { return JSON.parse(this, filter); }; }
Saya kira parseJSON sudah usang, oleh karena itu versi baru (json2) bahkan tidak menggunakannya lagi. Namun, jika kode
parseJSON
Anda banyak digunakan, Anda bisa menambahkan potongan kode ini di suatu tempat untuk membuatnya berfungsi kembali:Object.prototype.parseJSON = function (filter) { return JSON.parse(this, filter); };
sumber
Mengutip di sini :
"JSON2.js - Akhir tahun lalu Crockford diam-diam merilis versi baru JSON API-nya yang menggantikan API yang sudah ada. Perbedaan pentingnya adalah Crockford menggunakan satu objek dasar."
sumber
Saya juga memperhatikan bahwa json2 stringified array berbeda dari json2007.
Di json2007:
var array = []; array[1] = "apple"; array[2] = "orange"; alert(array.toJSONString()); // Output: ["apple", "orange"].
Di json2:
var array = []; array[1] = "apple"; array[2] = "orange"; alert(JSON.stringify(array)); // Output: [null, "apple", "orange"].
sumber