Heim > Artikel > Backend-Entwicklung > Kodierung und Dekodierung von JSON in PHP (detaillierte Beispiele)
Im vorherigen Artikel „Lernen Sie in fünf Minuten, wie Sie Arrays und Strings in PHP ineinander konvertieren“ haben wir die relevanten Kenntnisse zum Konvertieren von Arrays und Strings in PHP im Detail vorgestellt Ich hoffe, dass dieses Wissen über JSON in PHP für alle hilfreich sein wird!
Im vorherigen Artikel haben wir gelernt, wie man die Konvertierung zwischen Arrays und Strings in PHP durchführt, wofür die Funktionen explode()
und implode()
erforderlich sind Zur Implementierung müssen wir uns als Nächstes mit JSON auskennen und sehen, wie PHP JSON Variablen kodiert. explode()
函数和implode()
函数来实现,接下来我们需要了解一下JSON的一些知识,看一下PHP怎样对变量进行JSON编码。
想要进行PHP对变量进行JSON 的编码首先我们需要了解一下什么是JSON,下面我们一起来看一下吧。
JSON是什么
JSON 主要用于传送数据,它是一种轻量级的数据交换的格式,它能够完全的不同于PHP的编程语言来进行储存和表示数据。
它比较容易阅读和编写,同时JSON对于机器的解析和生成也是比较简单,通过JSON能够十分有效的提高数据之间传送的效率。
我们在PHP中已经有内置的JSON拓展,接下来我们就来看一下PHP中的JSON函数,应该如何使用PHP语言来编码JSON对象。
<strong><span style="font-size: 20px;">json_encode()</span></strong>
JSON编码
在PHP中的json_encode()
是用来对变量进行JSON编码的,该函数的基本语法格式如下:
string json_encode ( $value [, $options = 0 ] )
其中需要注意的是:运行json_encode()
函数成功的话,返回的结果就是JSON的数据,如果运行错误,返回的结果是false;
参数$value
表示的就是需要进行编码的值,其中json_encode()比较特殊的是,只有UTF-8 编码的数据对该函数有效,参数options
表示的是由常量组成的二进制的掩码,这些常量有:JSON_HEX_QUOT
, JSON_HEX_TAG
, JSON_HEX_AMP
, JSON_HEX_APOS
, JSON_NUMERIC_CHECK
,JSON_PRETTY_PRINT
, JSON_UNESCAPED_SLASHES
, JSON_FORCE_OBJECT
。
接下来我们通过示例来看一下PHP中json_encode()函数的使用,也就是将PHP的数组元素转换为JSON格式的数据,示例如下:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); $arr1 = array('一' => 1, '二' => 2, '三' => 3, '四' => 4, '五' => 5); echo json_encode($arr1); ?>
输出结果:
由上述示例我们能够看到,通过json_encode()能够将PHP的数组元素转换为JSON合适的数据,而且只有UTF-8 编码的数据对该函数有效。
上述示例转换的是PHP中的一维数组,接下来我们看一下多维数组转换的结果是什么样的,示例如下:
<?php $arr_2 = array(); // 三维数组 $arr_2['member']['lisi']['job'] = "worker"; $arr_2['member']['lisi']['age'] = 30; $arr_2['member']['wangwu']['job'] = "student"; $arr_2['member']['wangwu']['age'] = 10; echo json_encode($arr_2); //{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}} ?>
输出结果:
上述示例是通过函数将PHP中的数组元素进行转换,接下来我们看一下将PHP对象转换为JSON格式的数据,示例如下:
<?php class Person{ public $name = "public name"; protected $ptName = "protected name"; private $pName = "private name"; public function sayName(){ return $this->name; } } $person1 = new Person(); echo json_encode($person1);//{"name":"public name"} ?>
输出结果:
再来看一个示例:
<?php class Emp { public $name = ""; public $hobbies = ""; public $birthdate = ""; } $e = new Emp(); $e->name = "sachin"; $e->hobbies = "sports"; $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p"); $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03")); echo json_encode($e); ?>
输出结果:
由此我们便通过json_encode()函数完成了PHP中对象转换为JSON格式。
<strong><span style="font-size: 20px;">json_decode()</span></strong>
JSON解码
PHP中能够通过json_decode()
函数来对JSON格式的字符换进行转换成PHP的变量格式,这也就是解码。下面我们看一下json_decode()函数的基本语法格式,示例如下:
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
其中需要注意的是:参数json_string
表示需要进行转换也就是解码的JSON格式的字符串,同json_encode
()函数一样,这个进行解码的数据也必须是UTF-8的编码数据;参数assoc表示当参数是true的时候,返回的结果是个数组,当参数是false是返回的结果是对象;
参数depth表示的是整数类型的参数,参数options
表示的是二进制的掩码,与json_encode
()不同的是该函数目前没有支持这么多,目前只支持 JSON_BIGINT_AS_STRING
JSON wird hauptsächlich zum Übertragen von Daten verwendet. Es ist ein leichtes Datenaustauschformat Speichern und darstellen Sie Daten völlig anders als die Programmiersprache PHP.
<strong><span style="font-size: 20px;">json_encode()</span></strong>
JSON-Kodierung🎜🎜🎜json_encode()
in PHP wird zum JSON-Kodieren von Variablen verwendet. Das grundlegende Syntaxformat dieser Funktion ist wie folgt: 🎜<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>🎜 Was benötigt wird Zu beachten ist: Wenn die Funktion
json_encode()
erfolgreich ausgeführt wird, handelt es sich bei dem zurückgegebenen Ergebnis um JSON-Daten. Wenn der Operationsfehler auftritt, ist das zurückgegebene Ergebnis falsch /code > stellt den Wert dar, der codiert werden muss. Das Besondere an json_encode() ist, dass für diese Funktion nur UTF-8-codierte Daten gültig sind. Der Parameter options
stellt eine binäre Maske dar, die aus Konstanten besteht .code, diese Konstanten sind: JSON_HEX_QUOT
, JSON_HEX_TAG
, JSON_HEX_AMP
, JSON_HEX_APOS
, JSON_NUMERIC_CHECK
,JSON_PRETTY_PRINT
, JSON_UNESCAPED_SLASHES
, JSON_FORCE_OBJECT
. 🎜🎜Als nächstes schauen wir uns die Verwendung der Funktion json_encode() in PHP anhand eines Beispiels an, bei dem PHP-Array-Elemente in Daten im JSON-Format konvertiert werden. Das Beispiel lautet wie folgt: 🎜<?php $jsonStr = '{"key1":"value1","key2":"value2"}'; print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2 ?>🎜Ausgabeergebnis: 🎜🎜🎜🎜🎜Wir können von der sehen Im obigen Beispiel können PHP-Array-Elemente über json_encode() in JSON-geeignete Daten konvertiert werden, und nur UTF-8-codierte Daten sind für diese Funktion gültig. 🎜🎜Das obige Beispiel konvertiert ein eindimensionales Array in PHP. Schauen wir uns als Nächstes das Ergebnis der mehrdimensionalen Array-Konvertierung an. Das Beispiel sieht wie folgt aus: 🎜rrreee🎜Ausgabeergebnis: 🎜🎜🎜🎜🎜Das obige Beispiel dient der Verwendung von Funktionen Konvertieren Sie Array-Elemente in PHP-Konvertierung. Schauen wir uns als Nächstes die Konvertierung von PHP-Objekten in Daten im JSON-Format an. Das Beispiel lautet wie folgt: 🎜🎜rrreee🎜 Ausgabeergebnisse: 🎜🎜🎜🎜🎜Sehen wir uns ein weiteres Beispiel an: 🎜rrreee🎜Ausgabeergebnis: 🎜🎜 🎜 🎜🎜Davon haben wir Vervollständigen Sie PHP über die Funktion json_encode(). Konvertieren Sie das Objekt in das JSON-Format. 🎜🎜🎜
<strong><span style="max-width:90%">json_decode()</span></strong>
JSON-Dekodierung🎜🎜In PHP können Sie die Funktion json_decode()
verwenden, um Zeichen im JSON-Format in das PHP-Variablenformat zu konvertieren, das dekodiert. Werfen wir einen Blick auf das grundlegende Syntaxformat der Funktion json_decode(). Das Beispiel lautet wie folgt: 🎜rrreee🎜 Zu beachten ist, dass der Parameter json_string
die benötigte Zeichenfolge im JSON-Format darstellt Um konvertiert, dh dekodiert zu werden, müssen die dekodierten Daten genauso wie die Funktion code>json_encode() UTF-8-kodierte Daten sein Das zurückgegebene Ergebnis ist ein Array, und wenn der Parameter falsch ist, wird es zurückgegeben. Das Ergebnis ist ein Objekt Der Unterschied zu json_encode
() besteht darin, dass diese Funktion derzeit nicht so viele unterstützt, derzeit wird nur JSON_BIGINT_AS_STRING
unterstützt. 🎜🎜Als nächstes nehmen wir ein Beispiel, um zu sehen, wie PHP es dekodiert. Das Beispiel sieht wie folgt aus: 🎜rrreee🎜Ausgabeergebnis: 🎜🎜
通过上述示例我们看到了通过json_decode()对JSON进行解码,上述是解码成数组,下面我们看一下解码成对象,示例如下:
<?php $jsonStr = '{"key1":"value1","key2":"value2"}'; print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2 ?>
输出结果:
由此我们便通过json_encode()函数与json_decode()函数完成了PHP数据与JSON的编码与解码。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
Das obige ist der detaillierte Inhalt vonKodierung und Dekodierung von JSON in PHP (detaillierte Beispiele). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!