Nasıl düzgün PHP bu json nesnesini biçimlendirmek

7 Cevap php

Örneğin ben yaratan PHP bir veri yapısı, otomobil satıcıları bir dizi oluşturmak gerekiyor. Bu dizi elemanlarının her biri bu satıcı için araba türlü tutan bir çocuk dizi içerir.

Böylece gibi bir şey olurdu

$cars['toyota'] = array("camry", "etc");

Şeylerin JavaScript tarafında ben gibi bir şey yapabilirim ki ben PHP bu veri yapısını oluşturmak için gerekiyor

alert(cars.vendor[0].type[1])

Nasıl şeyler PHP ucunda bu veri yapısını kodlamak mı?

7 Cevap

Bu istediğiniz bunu nasıl kurmak için nasıl:

<script>
    var test = <?php
        print json_encode(array('vendor' => array(
            'toyota' => array('type' => array('camry','siena')),
            'mitsubishi' => array('type' => array('mirage','galant'))
        )));
    ?>;
    alert(test.vendor['toyota'].type[1]); // siena
    alert(test.vendor['mitsubishi'].type[0]); // mirage
</script>

Ben satıcı atlama tavsiye ve siz de o nesnenin başka şeyler tutarak, ve böyle bir şey yapıyoruz sürece tamamen bir kısmını yazın:

<script>
    var vendors = <?php
        print json_encode(array(
            'toyota' => array('camry','siena'),
            'mitsubishi' => array('mirage','galant')
        ));
    ?>;
    alert(vendors['toyota'][1]); // siena
    alert(vendors['mitsubishi'][0]); // mirage
</script>
$data = array();
$data['userDetails'] =array( array("username"=>$username,"password"=>$password));
$data["wsfunction"]="user_authentication";

aşağıdaki gibi json encode fonksiyonunun daha sonra çıkış

{"userDetails":[{"username":"Username","password":"Password"}],"wsfunction":"user_authentication"}

Hey, ilişkisel diziler ve nesneler Javascript eşit muamele edilmektedir. Bu nedenle, yapı PHP

$cars['toyota'] = array("camry", "etc");

JSON bu eşdeğer olacaktır:

var cars = { "toyota": [ "camry", "etc" ] };

You can easily convert PHP structure to JSON one with json_encode function. See json.org for JSON format details.

$cars = array();
$cars['toyota'] = array("camry", "etc");
$json = json_encode($cars);

Size bir javascript yapı arasında verecek

var cars = {
    toyota: [ 'camry', 'etc' ]
};

İsterseniz

var cars = {
    vendor: [ { type: [ 'camry', 'etc' ] } ]
}

Aramak sağlayacak alert(cars.vendor[0].type[1]) PHP dizi gibi görünmelidir

$cars = array(
    'vendor' => array(
        array('type' => array("camry", "etc"))
    )
);
$json = json_encode($cars);

Ama above belki vendor bölümü atlayın ve anahtar olarak apprpriate satıcı-adını kullanmanız gerekir işaret edilerek gibi.

İşte ben bunu yapacağını nasıl:

class EmptyObject {}
$cars = new EmptyObject();
$cars->vendor[] = array('type' => array('camry','sienna'));
$cars->vendor[] = array('type' => array('mirage','galant'));
$json = json_encode($cars);
print $json;
// this produces:
// {"vendor":[{"type":["camry","sienna"]},{"type":["mirage","galant"]}]}

Eğer PHP 5 kullanıyorsanız eğer çok zaten yanıtladı var gibi Eh, sen fonksiyonunu json_encode kullanabilirsiniz.

Noy Eğer PHP 4 kullanıyorsanız, ihtiyacınız olacak something extra like this.