Heim Backend-Entwicklung PHP-Problem Konvertieren Sie PHP-JSON-Daten in ein Array

Konvertieren Sie PHP-JSON-Daten in ein Array

May 23, 2023 am 11:14 AM

In PHP müssen wir manchmal JSON-Daten zur Verarbeitung in ein Array-Format konvertieren. Zu diesem Zeitpunkt können wir die Funktion json_decode() verwenden, um JSON-Daten in ein PHP-Array zu konvertieren. In diesem Artikel wird erläutert, wie Sie mit der Funktion json_decode() JSON-Daten in ein Array konvertieren und einige häufig gestellte Fragen beantworten.

JSON ist ein leichtes Datenaustauschformat, das häufig zur Datenübertragung verwendet wird, da es einfach zu verstehen, einfach zu verwenden und leicht zu erweitern ist. PHP ist eine schwach typisierte Programmiersprache, die effizient, schnell, einfach zu erlernen und zu verwenden ist. Da das JSON-Format nativ in PHP unterstützt wird, ist es sehr praktisch, PHP zur Verarbeitung von JSON-Daten während der Entwicklung zu verwenden.

Verwenden Sie die Funktion json_decode(), um JSON-Daten in ein Array zu konvertieren.

Das Folgende ist ein Beispielcode zum Konvertieren von JSON-Daten in ein Array:

$json = '{"name":"Tom","age":"20","sex":"male"}';

$arr = json_decode($json, true);

var_dump($arr);
Nach dem Login kopieren

Ausgabeergebnis:

array(3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  string(2) "20"
  ["sex"]=>
  string(4) "male"
}
Nach dem Login kopieren

Wie Sie sehen können, ist die Funktion json_decode() Konvertiert JSON-Daten in ein PHP-Array. Der zweite Parameter dieser Funktion kann auf „true“ oder „false“ gesetzt werden, was ein assoziatives Array zurückgibt, wenn es auf „true“ gesetzt ist, oder ein Objekt, wenn es auf „false“ gesetzt oder nicht gesetzt ist.

Das Folgende ist ein Beispielcode zum Zurückgeben eines Objekts:

$json = '{"name":"Tom","age":"20","sex":"male"}';

$obj = json_decode($json);

var_dump($obj);
Nach dem Login kopieren

Ausgabeergebnis:

object(stdClass)#1 (3) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  string(2) "20"
  ["sex"]=>
  string(4) "male"
}
Nach dem Login kopieren

Wenn Sie beim Parsen einer JSON-Zeichenfolge feststellen, dass die Zeichenkodierung nicht UTF-8 ist, müssen Sie sie in UTF-8 konvertieren Kodierung:

$json = '{"name":"Tom","age":"20","sex":"male"}';

$json = mb_convert_encoding($json, 'UTF-8', 'auto'); // 将编码转换为 UTF-8

$arr = json_decode($json, true);

var_dump($arr);
Nach dem Login kopieren

FAQ

1. Wie gehe ich mit JSON-Parsing-Fehlern um?

Während der Verarbeitung von JSON-Daten können Analysefehler aufgrund von Problemen mit dem JSON-Datenformat oder dem Kodierungsformat auftreten. An dieser Stelle können Sie die Funktion json_last_error() verwenden, um die Ursache des Analysefehlers zu ermitteln. Diese Funktion gibt eine Zahl zurück, die den Typ des JSON-Parsing-Fehlers darstellt. Das Folgende ist die Definition des Fehlertyps:

  • JSON_ERROR_NONE: Kein Fehler, Analyse erfolgreich.
  • JSON_ERROR_DEPTH: Die JSON-Daten sind zu komplex und überschreiten die festgelegte maximale Tiefe.
  • JSON_ERROR_STATE_MISMATCH: Das JSON-Datenformat ist falsch.
  • JSON_ERROR_CTRL_CHAR: Es liegt ein falsches Steuerzeichen vor.
  • JSON_ERROR_SYNTAX: Es liegt ein Syntaxfehler in den JSON-Daten vor.
  • JSON_ERROR_UTF8: JSON-Daten sind nicht UTF-8-codiert.

Verwenden Sie den folgenden Code, um die Ursache des Parsing-Fehlers zu ermitteln:

$json = '{"name": "Tom""age": "20"}'; // 注意,这里有错误

$arr = json_decode($json, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    switch (json_last_error()) {
        case JSON_ERROR_DEPTH:
            echo 'JSON 数据过于复杂,超出了设置的最大深度';
            break;
        case JSON_ERROR_STATE_MISMATCH:
            echo 'JSON 数据格式不正确';
            break;
        case JSON_ERROR_CTRL_CHAR:
            echo 'JSON 数据中有不正确的控制字符';
            break;
        case JSON_ERROR_SYNTAX:
            echo 'JSON 数据存在语法错误';
            break;
        case JSON_ERROR_UTF8:
            echo 'JSON 数据不是 UTF-8 编码';
            break;
        default:
            echo '未知的 JSON 解析错误';
            break;
    }
}

var_dump($arr);
Nach dem Login kopieren

Ausgabeergebnis:

JSON 数据存在语法错误
NULL
Nach dem Login kopieren

Wie oben gezeigt, kann die Funktion json_last_error() leicht die Ursache des Parsing-Fehlers ermitteln, um die Ursache schnell zu finden Problem.

2. Wie gehe ich mit dem Problem des nicht standardmäßigen JSON-Formats um?

Bei der tatsächlichen Verwendung liegen einige JSON-Daten möglicherweise nicht im standardisierten Format vor, z. B. die Verwendung eines Kommas nach dem letzten Attributwert. Wenn Sie die Funktion json_decode() verwenden, um diese JSON-Daten zu analysieren, wird NULL zurückgegeben. An dieser Stelle können wir zur Verarbeitung eine Bibliothek eines Drittanbieters verwenden.

Das Folgende ist ein Beispielcode, der die json5-Bibliothek verwendet, um das nicht-kanonische JSON-Format zu verarbeiten:

// 首先,安装 json5 库
// composer require symfony/polyfill-mbstring
// composer require webonyx/json5

$json = '{"name": "Tom", "age": 20, }'; // 注意,这里有错误

use Json5Parser;

$parser = new Parser();
$arr = $parser->decode($json);

var_dump($arr);
Nach dem Login kopieren

Ausgabeergebnis:

array(2) {
  ["name"]=>
  string(3) "Tom"
  ["age"]=>
  int(20)
}
Nach dem Login kopieren

Wie oben gezeigt, kann die Verwendung der json5-Bibliothek das Problem des nicht-kanonischen JSON-Formats problemlos lösen.

3. Wie geht man mit dem Problem des domänenübergreifenden Zugriffs auf JSON-Daten um?

Das Problem des domänenübergreifenden Zugriffs auf JSON-Daten führt dazu, dass der Browser aus Sicherheitsgründen verhindert, dass das Front-End in einer Ajax-Anfrage über Ajax-Anfragen hinweg auf Ressourcen in anderen Domänen zugreift. Zu diesem Zeitpunkt müssen wir einige Einstellungen vornehmen.

Das Folgende ist ein Beispielcode für die Verwendung von PHP, um einen domänenübergreifenden Zugriff zu erreichen:

header('Access-Control-Allow-Origin: *'); // 允许所有域名访问
header('Content-Type: application/json');

$json = '{"name": "Tom", "age": 20, "sex": "male"}';

echo $json;
Nach dem Login kopieren

Wie oben gezeigt, ermöglicht das Setzen des Access-Control-Allow-Origin-Headers in PHP den domänenübergreifenden Zugriff von anderen Domänennamen.

Fazit

Bisher haben wir vorgestellt, wie man die Funktion json_decode() verwendet, um JSON-Daten in ein Array zu konvertieren, und wie man einige häufige Probleme löst, die bei der Verarbeitung von JSON-Daten auftreten. Ich hoffe, dass dieser Artikel für alle hilfreich sein kann.

Das obige ist der detaillierte Inhalt vonKonvertieren Sie PHP-JSON-Daten in ein Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. Mar 25, 2025 am 10:37 AM

Die JIT -Kompilierung von PHP 8 verbessert die Leistung, indem häufig ausgeführte Code in den Maschinencode zusammengestellt wird, um Anwendungen mit schweren Berechnungen zugute und die Ausführungszeiten zu reduzieren.

PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. Mar 26, 2025 pm 04:18 PM

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. Mar 26, 2025 pm 04:13 PM

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. Mar 25, 2025 pm 03:12 PM

In dem Artikel wird die symmetrische und asymmetrische Verschlüsselung in PHP erörtert und ihre Eignung, Leistung und Sicherheitsunterschiede verglichen. Die symmetrische Verschlüsselung ist schneller und für Massendaten geeignet, während asymmetrisch für den sicheren Schlüsselaustausch verwendet wird.

Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Mar 20, 2025 pm 04:57 PM

In Artikel wird das Abrufen von Daten aus Datenbanken mithilfe von PHP, die Schritte, Sicherheitsmaßnahmen, Optimierungstechniken und gemeinsame Fehler bei Lösungen erfasst.

PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. Mar 25, 2025 pm 03:06 PM

In dem Artikel wird die Implementierung einer robusten Authentifizierung und Autorisierung in PHP erörtert, um den nicht autorisierten Zugriff zu verhindern, Best Practices zu beschreiben und sicherheitsrelevante Tools zu empfehlen.

Was ist der Zweck von vorbereiteten Aussagen in PHP? Was ist der Zweck von vorbereiteten Aussagen in PHP? Mar 20, 2025 pm 04:47 PM

Vorbereitete Aussagen in PHP erhöhen die Sicherheit und Effizienz der Datenbank durch Verhinderung der SQL -Injektion und Verbesserung der Abfrageleistung durch Zusammenstellung und Wiederverwendung.

PHP -API -Rate Begrenzung: Implementierungsstrategien. PHP -API -Rate Begrenzung: Implementierungsstrategien. Mar 26, 2025 pm 04:16 PM

In dem Artikel werden Strategien zur Implementierung der API-Rate in PHP erörtert, einschließlich Algorithmen wie Token-Bucket und Leaky Bucket sowie Bibliotheken wie Symfony/Rate-Limiter. Es deckt auch die Überwachung, die dynamischen Einstellungsgeschwindigkeiten und die Hand ab

See all articles