PHP Sorunları Ayrıştırma JSON

4 Cevap php

Ben bir yanıt json_encode (php funciton) bir dizi ile AJAX ile benim sunucusu formu olsun. Ancak, ben zorluk ayrıştırma yaşıyorum.

Ben bunu yapabilirsiniz:

alert(response);

Ama bu sadece bana çok gibi metin bir demet verir:

[{"User_id": "Dev_V2_MEH_0910_M03_v03c_NEW_CODE_03" ...... "grouper_opae_algorithm": "nap_v42lp"}]

Ben bir sürü kesim, lütfen unutmayın. Ben denedim:

alert(response[0].user_id);

Bu sadece bana tanımsız verir.

Ben yanlış ne yapıyorum?

4 Cevap

Bir dize olarak geri alıyoruz - bir nesne haline dönüştürmek gerekir.

Eğer jQuery veya Prototype gibi bir kitaplığı kullanıyorsanız o bunu yapmak için yerleşik bir yöntem olacaktır. Aksi takdirde eval kullanabilirsiniz:

object = eval('(' + response + ')');

Bu olsa da bazı güvenlik açıkları açıyor - bir işlev json enjekte edildi eğer idam olurdu.

JSON ayrıştırmak için en temel yolu, eval () komutu ile geçerli:

json = eval(response);
alert(json[0].user_id);

Bu kaynak güvenilmeyen olup olmadığını JSON sterilize yardımcı Prototip veya jQuery gibi kütüphaneleri kullanmak daha iyidir.

Ayrıca download official JSON parser javascript için, hangi yapalım olur yapabilirsiniz:

var myObj = JSON.parse(respsonse);

Crockford eval () işlevi önermez.

http://json.org/js.html

Sen, onun yerine json ayrıştırma / stringify işlevini kullanabilirsiniz

http://json.org/json2.js