Visualizzazione risultati 1 fino 3 di 3

Discussione: Parsing xml to json

  1. #1
    Guest

    Predefinito Parsing xml to json

    Buonasera!

    Ho questo file xml
    Codice PHP:
    <config>
    <
    icon>img/littleBox.png</icon>
    <
    basecolor>blue</basecolor>
    <
    buttons>
    <
    button>
    <
    icon>img/barcodeGunExit.png</icon>
    <
    action>formBarcodeExit</action>
    </
    button>
    </
    buttons>
    </
    config>
    e se provo a fare così

    Codice PHP:
    <?php
    $xml
    = simplexml_load_file("conf.xml");

    $f = array();

    $f['foo'] = "img/".$xml->icon;
    $f['bar'] = $xml->basecolor;

    echo(
    json_encode($f));
    ?>
    mi viene fuori questo

    Codice PHP:
    {"foo":"img\/img\/littleBox.png","bar":{"0":"blue"}}
    "bar" in xml viene visto come un array a cui l'indice 0 corrisponde "blue", mentre se facessi $f['bar'] = "".$xml->basecolor; (alla linea 4 del secondo blocco di codice) mi ritornerebbe senza array e direttamente il valore

    Codice PHP:
    {"a":"img\/img\/littleBox.png","b":"blue"}
    Ora, la mia domanda è:
    Io vorrei avere tutti i valori diretti senza che mi ritorni un array e senza dover appiccicare una stringa a caso che è poso elegante.
    Non voglio nemmeno accedere all'indice tramite js (tipo jsonData.bar[0]), voglio il json diretto e basta, è possibile?

    Grazie! A buon rendere!

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Puoi forzare anche la conversione in stringa come viene fatto in questo esempio: http://php.net/manual/en/simplexml.e...p#example-5619

  3. #3
    Guest

    Predefinito

    In effetti castando il valore il risultato ritorna! non ci avevo proprio pensato :look:
    Cmq son pigro, penso che alla fine utilizzero il DB con qualche inner invece che l'xml come file di configurazione, stare a castare ogni valore che tiro fuori mi sembra un attimo dispersivo <.<

    Grazie comunque! Byeee!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •