Saya menggunakan jquery, JSON, dan AJAX untuk sistem komentar. Saya ingin tahu, apakah ada batasan ukuran pada apa yang dapat Anda kirim / simpan dengan JSON? Seperti jika pengguna mengetikkan jumlah besar dan saya mengirimnya melalui JSON apakah ada semacam batas maksimum?
Bisa juga semua jenis teks dikirim melalui JSON. misalnya terkadang saya mengizinkan pengguna untuk menggunakan html, apakah ini boleh?
connectionDidFinishLoading
dan melakukan terjemahan JSON di sana (atau setelah itu disebut), bukan dididReceiveData
( di mana Anda harus menyatukan data yang diterima dengan tanggal sebelumnya diterima). Lingkungan lain serupa.Jawaban:
JSON mirip dengan format data lain seperti XML - jika Anda perlu mengirim lebih banyak data, Anda hanya mengirim lebih banyak data. Tidak ada batasan ukuran yang melekat pada permintaan JSON. Batasan apa pun akan ditetapkan oleh server untuk menguraikan permintaan. (Misalnya, ASP.NET memiliki properti "MaxJsonLength" dari serializer.)
sumber
JavaScriptSerializer.MaxJsonLength
disebutkan dalam jawaban Amber. (NB saya kutip dari MSDN )Tidak ada batasan tetap tentang seberapa besar blok data JSON atau bidang apa pun.
Ada batasan untuk seberapa JSON implementasi JavaScript dari berbagai browser dapat menangani (misalnya sekitar 40MB dalam pengalaman saya). Lihat pertanyaan ini misalnya .
sumber
Itu tergantung pada implementasi penulis / parser JSON Anda. Microsoft DataContractJsonSerializer tampaknya memiliki batas keras sekitar 8kb (8192 saya pikir), dan itu akan keluar untuk string yang lebih besar.
Sunting: Kami dapat menyelesaikan batas 8K untuk string JSON dengan menyetel properti MaxJsonLength di konfigurasi web seperti yang dijelaskan dalam jawaban ini: https://stackoverflow.com/a/1151993/61569
sumber
Sebenarnya tidak ada batasan pada ukuran data JSON untuk dikirim atau terima. Kami dapat mengirim data Json dalam file juga. Menurut kemampuan browser yang Anda gunakan, data Json dapat ditangani.
sumber
Implementasi bebas menentukan batas pada dokumen JSON, termasuk ukurannya, jadi pilih parser Anda dengan bijak. Lihat RFC 7159 , Bagian 9. Parsers:
"Suatu implementasi dapat menetapkan batas pada ukuran teks yang diterimanya. Suatu implementasi dapat menetapkan batas pada kedalaman maksimum dari sarang. Suatu implementasi dapat menetapkan batasan pada kisaran dan ketepatan angka. Suatu implementasi dapat menetapkan batas pada panjang dan karakter isi string. "
sumber
Jika Anda bekerja dengan ASP.NET MVC, Anda bisa menyelesaikan masalah dengan menambahkan MaxJsonLength ke hasil Anda:
sumber
int.MaxValue
ditolak sebagai "terlalu besar" - coba ukuran lain, dan lihat seberapa besar Anda bisa.Tentunya semua orang melewatkan trik di sini. Batas ukuran file saat ini dari file json adalah 18.446.744.073.709.551.616 karakter atau jika Anda lebih suka byte, atau bahkan 2 ^ 64 byte jika Anda melihat setidaknya infrastruktur 64 bit.
Untuk semua maksud, dan tujuan kami dapat menganggapnya tidak terbatas karena Anda mungkin akan mengalami kesulitan untuk mencapai masalah ini ...
sumber
Panjang maksimum string JSON. Standarnya adalah 2097152 karakter, yang setara dengan 4 MB data string Unicode.
Lihat URL di bawah ini
https://docs.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer.maxjsonlength?view=netframework-4.7.2
sumber
JavaScriptSerializer
kelasnya. DanMaxJsonLength
sudah dibahas dalam jawaban lain.