Visualizzazione dei risultati da 1 a 9 su 9

Discussione: uso json_encode

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590

    uso json_encode

    salve, ho uno script php interrogato da una pagina via ajax. Il risultato della richiesta deve essere in formato json del tipo
    codice:
    {   "edges":[
          {
             "source":"473",
             "target":"313",
             "id":"6432"
          },
          {
             "source":"285",
             "target":"50",
             "id":"357"
          }
       ],
       "nodes":[
          {
             "label":"Sciences De La Terre",
             "id":"262",
             "color":"rgb(255,204,102)",
             "size":8.540210723876953
          },
          {
             "label":"Champ",
             "id":"586",
             "color":"rgb(255,51,51)",
             "size":4.0
          }
       ]
    }
    qualcuno sa indicarmi come usare json_encode per produrre questo formato?
    Ultima modifica di jimbo0; 03-06-2014 a 20:40

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Devi generare un array con tale struttura in PHP, poi json_encode() te lo trasformerà così.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    a pensarci bene potrei anche generare solo i nodes e tralasciare completamente gli edges.
    per capirci così
    codice:
    {  
       "nodes":[
          {
             "label":"Sciences De La Terre",
             "id":"262",
             "color":"rgb(255,204,102)",
             "size":8.540210723876953
          },
          {
             "label":"Champ",
             "id":"586",
             "color":"rgb(255,51,51)",
             "size":4.0
          }
       ]
    }
    ma come traduco in json quel "nodes:"? un array anche quello?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Scusa, ma tu i dati da dove li prendi? Da un db suppongo, giusto?

    Con questi dati devi generare un array che abbia la struttura del json che hai appena scritto, poi quando passerai l'array a json_encode(), questo verrà trasformato nel codice json che hai scritto tu.

    Però puoi anche generare direttamente una stringa nel formato json visto che la struttura che ti serve non è complicata.

    Codice PHP:
    $json '{ "nodes":["';

    //qui un ciclo che ti genera gli elementi

    $json .= '] }'

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Con questi dati devi generare un array che abbia la struttura del json che hai appena scritto, poi quando passerai l'array a json_encode(), questo verrà trasformato nel codice json che hai scritto tu.
    è quello il problema, cos'è in php quel "nodes:"?


    avevo già pensato di costruirmi manualmente la stringa, ma preferirei evitare..

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Se parli di array, sarà il nome di una chiave.

    $array['nodes']

    visto però che hai problemi a capire come è fatto un array, fossi in te mi giocherei la carta della stringa.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    permettimi, non ho problemi a capire cos'è o com'è fatto un array.
    Ho solo notato, dopo diverse prove, che non riesco a stampare precisamente in quel formato.
    ad esempio
    codice:
    $array['nodes'] = array(    "key1" => "bar",
        "key2" => "fao",
        "key3" => "foo",
      
    );
    stampa
    codice:
    {"nodes":{"key1":"bar","key2":"fao","key3":"foo"}}

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Sei tu che hai chiesto cos'è "nodes" in PHP.

    Quello lì è il formato giusto, non è come quello che hai scritto nel primo post semplicemente perché in $array['nodes'] ci hai messo un solo array, se ce ne mettessi un secondo ti verrebbe fuori come ti aspetti.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    il formato giusto è questo
    codice:
    $array['nodes'][] = array(    "key2" => "fao",
        "key3" => "foo",
      
    );
    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.