
XMen
Was ich machen möchte ist folgendes:
- JSON als Eingabe aus dem Textbereich in PHP nehmen
- 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.
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.

sepidol
Versuche dies:
$data = json_decode($your_json_string, TRUE);
Der zweite Parameter macht aus der decodierten JSON-Zeichenfolge ein assoziatives Array.

jbeauchamp
Wenn Sie die JSON-Zeichenfolge aus dem Formular erhalten, verwenden Sie $_REQUEST
, $_GET
oder $_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;

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
)
)
)

Himanshu Jansari
Wenn Sie eine JSON-Zeichenfolge von der URL erhalten, verwenden Sie file_get_contents
dann 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));

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"] . '
';
9891100cookie-checkSo konvertieren Sie eine JSON-Zeichenfolge in ein Arrayyes
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