Nesneyi JSON dizesine dönüştür


Yanıtlar:


188

jQuery, yerel tarayıcı yöntemini çağırmadan önce yalnızca bazı regexp denetimi yapar window.JSON.parse(). Bu mevcut değilse, bir Javascript nesnesi oluşturmak için eval()veya daha fazlasını kullanır new Function().

Zıt JSON.parse()DİR JSON.stringify()bir dizeye bir JavaScript nesnesi serializes. jQuery bunun için kendi işlevselliğe sahip değil, sen sürümü yerleşik veya tarayıcıyı kullanmak zorunda json2.jsden http://www.json.org

JSON.stringify() tüm büyük tarayıcılarda mevcuttur, ancak eski tarayıcılarla uyumlu olmak için yine de bu yedeğe ihtiyacınız vardır.


4
bu yardımcı olabilir:var theObject = (typeof data == "string") ? jQuery.parseJSON(data) : data;
roberthuttinger

2
@tekretic: Umarım trol yapıyorsundur. Chrome, JSONana bilgisayar nesnesini 1. günden beri uygular .
jAndy

5
@jAndy: Vay canına, üzgünüm. Trolling değil ama OH çok yanlış. 2009 ortalarında WebKit'e yerel JSON desteğinin eklendiği ve Chrome 3.0'dan beri desteklendiği ortaya çıktı. Önceki, tamamen yanlış yorumum, şu anda üzerinde çalıştığım CMS ile birleştirilen ve aslında window.JSON'u kendi kitaplığıyla değiştiren bu modası geçmiş sorunun yarısına dayanıyordu , anlamı JSON.stringify()tanımlanmadı. Her açıdan oldukça başarısız.
Molomby


1
@jAndy: Kafamı karıştırmayın; : JSON.stringify bir nesneyi 'serileştirir', lütfen bunun sadece bir hata olduğunu söyleyin
yarım bit

12

Ayrıca, hata ayıklama amacıyla nesneyi ve özelliklerini göstermek istediğinizde, hata ayıklama amaçları için Object.toSource () yararlıdır. Bu genel bir Javascript (jQuery değil) işlevidir, ancak yalnızca "modern" tarayıcılarda çalışır.


4

JavaScript nesnesini json verilerine dönüştür

$("form").submit(function(event){
  event.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
  consol.log(jsonConvertedData);
});

Sen kullanarak json verilerini doğrulamak http://jsonlint.com


2

Mükemmel jquery-Json eklentisini kullanabilirsiniz:

http://code.google.com/p/jquery-json/

Json nesnelerine ve nesnelerinden dönüştürmeyi kolaylaştırır.


2
Lütfen eklenti mantık kitaplıkları yerine SPL yöntemlerini önerin.
David J Eddy

2
SPL = Standart PHP Kitaplığı. Sanırım bu durumda SJL (standart javascript kitaplığı) olacaktır.
David J Eddy

3
Soru jQuery ve Javascript ile ilgili. PHP, PHP kitaplıkları veya SPL ile ilgisi yok.
George Filippakos

3
standart kitaplıklar standart kitaplıklardır; dil önemli değil. Demek istediğim, dili 'bu eklentiyi kullan' sendromu yerine öğreten bir çözüm önermek daha iyidir.
David J Eddy

1
Kesinlikle, neden tekerleği yeniden icat edin ... bir dilin standart yeteneklerini bir 'eklenti' üzerinden kullanın ama ben konu dışına çıkıyorum.
David J Eddy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.