So konvertieren Sie eine JSON-Zeichenfolge in ein Array

Lesezeit: 4 Minuten

So konvertieren Sie eine JSON Zeichenfolge in ein Array
XMen

Was ich machen möchte ist folgendes:

  1. JSON als Eingabe aus dem Textbereich in PHP nehmen
  2. Verwenden Sie diese Eingabe und konvertieren Sie sie in JSON und übergeben Sie sie an PHP Curl, um die Anfrage zu senden.

Dies ist ein Aufruf von PHP von Get of Api. Diese JSON-Zeichenfolge möchte ich an JSON übergeben, aber sie konvertiert nicht in ein Array

echo $str="{
        action : "create",
        record: {
            type: "n$product",
            fields: {
                n$name: "Bread",
                n$price: 2.11
            },
            namespaces: { "my.demo": "n" }
        }
    }";
    $json = json_decode($str, true);

Der obige Code gibt mir kein Array zurück.

  • Müssen Sie den JSON-String in ein Array konvertieren ODER möchten Sie eine URL aus diesen Daten fälschen? Was genau ist die Frage?

    – Janis Veinbergs

    22. September 2011 um 8:30 Uhr

  • then it is not giving Was nicht geben? Sie nehmen eine JSON-formatierte Zeichenfolge aus Textarea und konvertieren sie in JSON???

    – PeeHaa

    22. September 2011 um 8:32 Uhr


  • Wenn Sie das obige json in meiner Frage json_decode (, true) tun, gibt es ein Array zurück

    – XMen

    22. September 2011 um 9:09 Uhr

  • @Pekka Bitte überprüfe meine Frage noch einmal.

    – XMen

    22. September 2011 um 9:24 Uhr


  • Ungültiges json-Problem, das war .

    – XMen

    24. September 2011 um 11:15 Uhr

Wenn Sie den JSON in Ihrem Beitrag an übergeben json_decode, es wird scheitern. Gültige JSON-Strings haben Schlüssel in Anführungszeichen:

json_decode('{foo:"bar"}');         // this fails
json_decode('{"foo":"bar"}', true); // returns array("foo" => "bar")
json_decode('{"foo":"bar"}');       // returns an object, not an array.

  • Wenn Sie das obige json in meiner Frage json_decode (, true) tun, gibt es ein Array zurück

    – XMen

    22. September 2011 um 9:09 Uhr

  • @RahulMehta Wenn Sie das integrierte PHP verwenden json_decode() es wird zurückkehren NULL wenn Ihr JSON ungültig ist (z. B. keine Schlüssel in Anführungszeichen). Das steht in der Dokumentation und das gibt meine PHP 5.2-Installation zurück. Verwenden Sie eine andere Funktion als die offizielle, integrierte json_decode()? Was macht var_dump(json_decode($str, true)); Rückkehr?

    – RickN

    22. September 2011 um 15:34 Uhr


  • nach json_encoding möchte ich jedes einzelne json-Objekt zB {foo:”bar”} als Objekt im Array lesen. Wie kann ich aus den json_encoded-Daten ein Array erstellen, um jedes JSON-Objekt zu lesen? @RikkusRukkus

    – Manny265

    3. Oktober 2018 um 8:48 Uhr


  • @ Manny265 das klingt nach etwas, das eine eigene Frage verdient, mit (1) etwas Beispielcode, (2) was Sie bisher versucht haben und (3) dem erwarteten Ergebnis, anstatt diesem Kommentarabschnitt.

    – RickN

    3. Oktober 2018 um 10:04 Uhr

1646949845 934 So konvertieren Sie eine JSON Zeichenfolge in ein Array
sepidol

Versuche dies:

$data = json_decode($your_json_string, TRUE);

Der zweite Parameter macht aus der decodierten JSON-Zeichenfolge ein assoziatives Array.

So konvertieren Sie eine JSON Zeichenfolge in ein Array
jbeauchamp

Wenn Sie die JSON-Zeichenfolge aus dem Formular erhalten, verwenden Sie $_REQUEST, $_GEToder $_POST Sie müssen die Funktion verwenden html_entity_decode(). Ich habe das nicht bemerkt, bis ich a gemacht habe var_dump was in der Anfrage stand vs. was ich in und kopiert habe echo -Anweisung und bemerkte, dass die Anforderungszeichenfolge viel größer war.

Der richtige Weg:

$jsonText = $_REQUEST['myJSON'];
$decodedText = html_entity_decode($jsonText);
$myArray = json_decode($decodedText, true);

Mit Fehlern:

$jsonText = $_REQUEST['myJSON'];
$myArray = json_decode($jsonText, true);
echo json_last_error(); //Returns 4 - Syntax error;

  • Perfekt, das funktioniert. Wenn ich Daten von der $_POST-Funktion bekomme, war json_last_error() = zu JSON_ERROR_SYNTAX. aber alles war immer in Ordnung. Es war ein Fehler beim Decodieren, kein Fehler beim Codieren wie ASCII oder UTF8. DANKE

    Benutzer1817927

    9. Februar 2016 um 18:36 Uhr

So konvertieren Sie eine JSON Zeichenfolge in ein Array
Arslan Ramay

Verwenden json_decode($json_string, TRUE) Funktion zum Konvertieren des JSON-Objekts in ein Array.

Beispiel:

$json_string   = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

$my_array_data = json_decode($json_string, TRUE);

HINWEIS: Der zweite Parameter konvertiert die decodierte JSON-Zeichenfolge in ein assoziatives Array.

===========

Ausgabe:

var_dump($my_array_data);

array(5) {

    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Ihre Zeichenfolge sollte das folgende Format haben:

$str="{"action": "create","record": {"type": "n$product","fields": {"n$name": "Bread","n$price": 2.11},"namespaces": { "my.demo": "n" }}}";
$array = json_decode($str, true);

echo "<pre>";
print_r($array);

Ausgabe:

Array
 (
    [action] => create
    [record] => Array
        (
            [type] => n$product
            [fields] => Array
                (
                    [n$name] => Bread
                    [n$price] => 2.11
                )

            [namespaces] => Array
                (
                    [my.demo] => n
                )

        )

)

  • es hat am Ende ein wahres

    – Prinz Hamza

    9. Juli 2021 um 16:19 Uhr

1646949847 284 So konvertieren Sie eine JSON Zeichenfolge in ein Array
Himanshu Jansari

Wenn Sie eine JSON-Zeichenfolge von der URL erhalten, verwenden Sie file_get_contentsdann folgen Sie den Schritten:

$url = "http://localhost/rest/users";  //Die URL, von der Sie den Inhalt erhalten $response = (file_get_contents($url));  //Konvertieren in json string $n = strpos($response, "[");
$response = substr_replace($response,"",0,$n+1);
$response = substr_replace($response, "" , -1,1);
print_r(json_decode($response,true));

  • it has a true at the end

    – Prince Hamza

    Jul 9, 2021 at 16:19

1642758666 751 Maximalwerte im JSON Array abrufen
Dankyi Anno Kwaku

There is a problem with the string you are calling a json. I have made some changes to it below. If you properly format the string to a correct json, the code below works.

$str="{
        "action" : "create",
        "record": {
            "type": "n$product",
            "fields": {
                "nname": "Bread",
                "nprice": 2.11
            },
            "namespaces": { "my.demo": "n" }
        }
    }";

    $response = json_decode($str, TRUE);
    echo '<br> action' . $response["action"] .  '

';

989110cookie-checkSo konvertieren Sie eine JSON-Zeichenfolge in ein Array

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy