Was ich tun 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 eine Anfrage zu senden.
Dies ist bei PHP von Get of API dieser JSON-String, den ich an JSON übergeben möchte, aber es wird nicht in Array konvertiert
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.
then it is not giving
Nicht was geben? Sie nehmen eine JSON-formatierte Zeichenfolge aus dem Textbereich und konvertieren sie in JSON ???Antworten:
Wenn Sie den JSON in Ihrem Beitrag an übergeben
json_decode
, schlägt dies fehl. Gültige JSON-Zeichenfolgen haben Schlüssel in Anführungszeichen:quelle
json_decode()
wird es zurückgegeben,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, integriertejson_decode()
? Was kommtvar_dump(json_decode($str, true));
zurück?Versuche dies:
Der zweite Parameter macht einen decodierten JSON-String zu einem assoziativen Array.
quelle
Wenn Sie den JSON - String aus dem Formular werden immer mit
$_REQUEST
,$_GET
oder$_POST
die Sie benötigen , um die Funktion zu verwendenhtml_entity_decode()
. Ich habe dies erst bemerkt, als ich einevar_dump
derecho
Angaben in der Anfrage im Vergleich zu den Anweisungen und Anweisungen gemacht habe und festgestellt habe, dass die Anforderungszeichenfolge viel größer war.Der richtige Weg:
Mit Fehlern:
quelle
Verwenden Sie die
json_decode($json_string, TRUE)
Funktion, um das JSON-Objekt in ein Array zu konvertieren.Beispiel:
HINWEIS: Der zweite Parameter konvertiert dekodierte JSON-Zeichenfolgen in ein assoziatives Array.
===========
Ausgabe:
quelle
Wenn Sie eine JSON-Zeichenfolge von der URL erhalten
file_get_contents
, führen Sie die folgenden Schritte aus:quelle
Ihre Zeichenfolge sollte das folgende Format haben:
Ausgabe:
quelle
Sie können json Object in Array & String konvertieren.
quelle
Wenn Sie jemals JSON-Dateien oder -Strukturen in Arrays im PHP-Stil mit allen Verschachtelungsebenen konvertieren müssen, können Sie diese Funktion verwenden. Zuerst müssen Sie json_decode ($ yourJSONdata) und dann an diese Funktion übergeben. Es gibt die richtigen Arrays im PHP-Stil an Ihr Browserfenster (oder Ihre Konsole) aus.
https://github.com/mobsted/jsontophparray
quelle
Ich denke, das sollte funktionieren, es ist nur so, dass die Schlüssel auch in doppelten Anführungszeichen stehen sollten, wenn sie keine Ziffern sind.
quelle
das ist meine lösung: json string
$columns_validation = string(1736) "[{"colId":"N_ni","hide":true,"aggFunc":null,"width":136,"pivotIndex":null,"pinned":null,"rowGroupIndex":null},{"colId":"J_2_fait","hide":true,"aggFunc":null,"width":67,"pivotIndex":null,"pinned":null,"rowGroupIndex":null}]"
Also benutze ich json_decode zweimal so:
und das Ergebnis ist:
quelle
Stellen Sie sicher, dass die Zeichenfolge das folgende JSON-Format hat:
Wenn nicht, können Sie
"responsetype => json"
Ihre Anforderungsparameter hinzufügen.Verwenden Sie dann
json_decode($response,true)
, um es in ein Array zu konvertieren.quelle
responseType
Eigenschaft verwendet, um den Datentyp in der Antwort auf die Anforderung zu bestimmen. Das Problem ist jedoch, dass der Anforderungshauptteil Daten enthält, die nicht korrekt sind. Ihre Antwort passt daher nicht zum gegebenen Kontext.Sie können eine Zeichenfolge wie folgt in JSON ändern und bei Bedarf auch die Zeichenfolge zuschneiden und abstreifen.
quelle
Verwenden Sie diesen Konverter. Er schlägt überhaupt nicht fehl: Services_Json
quelle
quelle