Heim > Backend-Entwicklung > PHP-Problem > So lösen Sie das Problem doppelter Anführungszeichen beim Konvertieren eines PHP-Arrays in JSON

So lösen Sie das Problem doppelter Anführungszeichen beim Konvertieren eines PHP-Arrays in JSON

PHPz
Freigeben: 2023-04-18 15:46:37
Original
1711 Leute haben es durchsucht

Beim Konvertieren von PHP-Arrays in JSON-Daten kommt es manchmal vor, dass die JSON-Zeichenfolge doppelte Anführungszeichen enthält. Diese Situation kommt in der tatsächlichen Entwicklung sehr häufig vor und die Lösung ist sehr einfach.

Um ein PHP-Array in einen JSON-String zu konvertieren, können Sie im Allgemeinen die in PHP integrierte Funktion json_encode() verwenden. Diese Funktion konvertiert ein PHP-Array in einen JSON-String. Der folgende Code konvertiert beispielsweise ein PHP-Array, das einige Daten enthält, in einen JSON-String: json_encode() 来完成。这个函数可以把一个 PHP 数组转换成一个 JSON 字符串。例如,下面的代码将一个包含了一些数据的 PHP 数组转换为 JSON 字符串:

$data = array(
    'name' => 'John',
    'age' => 30,
    'gender' => 'male'
);

$json_str = json_encode($data);
echo $json_str;
Nach dem Login kopieren

这段代码的输出结果是:

{"name":"John","age":30,"gender":"male"}
Nach dem Login kopieren

上面的代码中,将一个包含了 nameagegender 三个字段值的 PHP 数组转换成了一个 JSON 字符串。

然而,有时候我们的 PHP 数组中的值本身就包含有双引号,当使用 json_encode() 函数将其转换成 JSON 字符串的时候,会出现问题。

例如,以下 PHP 数组就包含了有双引号的值:

$data = array(
    'name' => 'John "The Rock" Johnson',
    'age' => 30,
    'gender' => 'male'
);
Nach dem Login kopieren

如果直接使用 json_encode() 函数来转换成 JSON 字符串:

$json_str = json_encode($data);
echo $json_str;
Nach dem Login kopieren

输出结果为:

{"name":"John "The Rock" Johnson","age":30,"gender":"male"}
Nach dem Login kopieren

我们会发现,JSON 字符串中的 name 字段的值并没有被正确地转换成双引号内的字符串,而是在第一个双引号处被截断了。

为了解决这个问题,我们需要在使用 json_encode() 函数转换成 JSON 字符串的时候,添加一个参数 JSON_UNESCAPED_SLASHES,例如:

$json_str = json_encode($data, JSON_UNESCAPED_SLASHES);
echo $json_str;
Nach dem Login kopieren

这样,输出结果会正确地将 name 字段的值转换成双引号内的字符串:

{"name":"John \"The Rock\" Johnson","age":30,"gender":"male"}
Nach dem Login kopieren

注意到输出结果中 name 字段的值已经被正确地使用了双引号括起来,并且内部的双引号也被转义成了 "。这样,转换成的 JSON 字符串才能正确地被解析。

除了 JSON_UNESCAPED_SLASHES 参数外,还有一些其他的参数可以用来控制 json_encode() 函数的转换结果。如果你需要了解更多,可以参考 PHP 官方文档中的 json_encode()rrreee

Die Ausgabe dieses Codes lautet: 🎜rrreee🎜Im obigen Code ein Array mit name, age und gender PHP-Arrays aus drei Feldwerten werden in einen JSON-String konvertiert. 🎜🎜Allerdings enthalten die Werte in unseren PHP-Arrays manchmal selbst doppelte Anführungszeichen und es treten Probleme auf, wenn sie mit der Funktion json_encode() in JSON-Strings konvertiert werden. 🎜🎜Zum Beispiel enthält das folgende PHP-Array Werte in doppelten Anführungszeichen: 🎜rrreee🎜Wenn Sie die Funktion json_encode() direkt zum Konvertieren in einen JSON-String verwenden: 🎜rrreee🎜Das Ausgabeergebnis ist : 🎜rrreee🎜 Wir werden feststellen, dass der Wert des Felds name in der JSON-Zeichenfolge nicht korrekt in eine Zeichenfolge innerhalb doppelter Anführungszeichen umgewandelt wird, sondern beim ersten doppelten Anführungszeichen abgeschnitten wird. 🎜🎜Um dieses Problem zu lösen, müssen wir einen Parameter JSON_UNESCAPED_SLASHES hinzufügen, wenn wir die Funktion json_encode() verwenden, um ihn in einen JSON-String umzuwandeln, zum Beispiel: 🎜rrreee 🎜Auf diese Weise wandelt das Ausgabeergebnis den Wert des Felds name korrekt in eine Zeichenfolge in doppelten Anführungszeichen um: 🎜rrreee🎜 Beachten Sie, dass der Wert des Felds name im Ausgabeergebnis wurde korrekt verwendet. Umgeben von doppelten Anführungszeichen, und die inneren doppelten Anführungszeichen werden ebenfalls in " maskiert. Auf diese Weise kann die konvertierte JSON-Zeichenfolge korrekt analysiert werden. 🎜🎜Außer für JSON_UNESCAPED_SLASHES Zusätzlich zu den Parametern gibt es einige andere Parameter, die zur Steuerung der Konvertierungsergebnisse der Funktion json_encode() verwendet werden können zu json_encode() in der offiziellen PHP-Dokumentation> Funktionsbeschreibung 🎜

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem doppelter Anführungszeichen beim Konvertieren eines PHP-Arrays in JSON. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage