Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    JSon Decode restituisce NULL

    Se faccio così:

    $stringa='{"1":{"1":"OK1","2":"OK2"},"2":{"1":"OK3 ","2":"OK4"},"3":{}}';
    $stringa_decodificata=json_decode($stringa,true);
    $stringa_decodificata[1][1] mi da "OK1", e quindi funziona perfettamente


    Se ora provo ad ottenere le suddetta stringa (identica) con JSON, ottengo $stringa_decodificata[1][1] = NULL
    La cosa strana è che, appunto, le due stringhe dovrebbero essere identiche...

    Qualche idea?
    Where there is a will, there is a way

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Cosa vuol dire "Se ora provo ad ottenere le suddetta stringa (identica) con JSON"?

  3. #3
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Cosa vuol dire "Se ora provo ad ottenere le suddetta stringa (identica) con JSON"?
    per farla breve, vuol dire che anzichè scrivere:

    $stringa='{"1":{"1":"OK1","2":"OK2"},"2":{"1":"OK3 ","2":"OK4"},"3":{}}';

    scrivo:

    $stringa=$_POST['miastringa'];

    dove 'miastringa' proviene da JSON con questo codice:

    miastringa: JSON.stringify(mioarray),
    Where there is a will, there is a way

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ed hai provato a vedere cosa contiene effettivamente $_POST['miastringa']? Assicurati che contenga effettivamente ciò che ti aspetti, non darlo per scontato, verificalo.

  5. #5
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Ed hai provato a vedere cosa contiene effettivamente $_POST['miastringa']? Assicurati che contenga effettivamente ciò che ti aspetti, non darlo per scontato, verificalo.
    Tramite lo stesso script PHP ho provato a salvare $miastringa in un database mysql ed ottengo esattamente la stringa indicata:

    {"1":{"1":"OK1","2":"OK2"},"2":{"1":"OK3","2":"OK4 "},"3":{}}

    Tuttavia inizio anche io a sospettare che questa non sia la stringa effettivamente passata da JSON. C'è un modo per vedere subito cosa restituisce JSON? Senza passare per un database mysql...

    PS: ho provato anche a riportare indietro $miastringa a JSON-AJAX (con json_encode) e a visualizzarla con un alert: la stringa che mi restituisce l'alert è:

    {\"1\":{\"1\":\"ok1\",\"2\":\"ok2\"},\"2\":{\"1\": \"OK3\",\"2\":\"OK4\"},\"3\":{}}
    Where there is a will, there is a way

  6. #6
    FINALMENTE RISOLTO CON:

    $stringa=$_POST['miastringa'];

    $stringa=stripslashes($stringa);

    Era proprio come pensavamo: la stringa ricevuta da JSON aveva bisogno di qualche "ritocchino" prima di essere trasformata in un array con json_decode. Spero che questo esempio servirà in futuro a qualcuno...passo e chiudo...e grazie
    Where there is a will, there is a way

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 © 2024 vBulletin Solutions, Inc. All rights reserved.