Dieser Artikel stellt hauptsächlich das Problem der Codierungskonvertierung zwischen JSON und PHP vor. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.
<br/>
<br/>
<br/>
※ Prämisse: Umgang mit Datenkonvertierungssituationen, die auftreten können, wenn JSON und PHP Daten im Front- bzw. Backend gegenseitig übertragen (hauptsächlich für Arrays):
<br/>
☆ Rezeptionscode:
var arr = {"name":"张伟","age":19}; //此时生成的是json的数组
arr = json.stringify(arr); //此时将arr转换成 json的字符串类型
$.ajax({ type:"post", url:url, data:{arr:arr}, //将转换成字符串类型的json传递给php后台,换换成字符串类型后可以一次性传递多个数据 success:function(res){ console.log(res); } });
<br/>
☆Backend-Code (wenn nur Zeichenfolgen übergeben werden):
map = $_POST['arr']; $map = json_decode($map);//json对象 解码之后PHP可以使用,但要用json的方法在后台使用$map->name echo $map->name; // 会输出到res中, 通过consolve.log(res) 可以直接输出
<br/>
<br/>
Frage
<br/>
In Bezug auf die Übergabe von Arrays zwischen PHP und JSON gibt es zwei Möglichkeiten, Daten vom Hintergrund nach vorne zu übertragen: echo, ajaxreturn
<br/>
$1 Die erste Methode:
echo, Sie müssen es selbst codieren und dann die JSON-Zeichenfolge
<br/>< ausgeben 🎜>
Zu diesem Zeitpunkt gibt es zwei Situationen: Eine besteht darin, die von der Rezeption empfangene JSON-Zeichenfolge zurückzugeben, und die andere darin, im Hintergrund ein neues Array zu erstellen und an die Rezeption zurückzugeben.<br/>
$1.1 Der Hintergrund empfängt die Vordergrunddaten und gibt dieselben Daten zurück
$map = $_POST['arr'];//从前台传递过来的$map $map = json_decode($map);//json对象 解码之后给php后台使用 ..... $map = json_encode($map);//对json数组进行编码生成json字符串 echo $map; //输出$map到前台
$mapN = json_encode($mapN);//在后台自行创建的数组,在传递给前台之前同样需要进行编码 echo $mapN;
res = eval("("+res+")");//通过res将从后台传过来的json字符串转换成数组 console.log(res.name);
<br/>
$2 Zweite Methode:
ajaxreturn , übergeben Arrays müssen nicht codiert werden. Standardmäßig wird die Zeichenfolgenform von JSON übergeben, für die Konvertierung im Frontend ist jedoch eine Auswertung erforderlich. Konvertieren Sie die JSON-Zeichenfolge in ein Array<br/>
<br/>
<br/>
Zu diesem Zeitpunkt gibt es zwei Situationen: Eine besteht darin, die von der Rezeption empfangene JSON-Zeichenfolge zurückzugeben, und die andere darin, im Hintergrund ein neues Array zu erstellen und Rückkehr zur Rezeption.<br/>
$2.1 Empfangen Sie das Programm aus dem Vordergrund und bringen Sie es direkt vom Hintergrund in den Vordergrund zurück$map = $_POST['arr']; $map = json_decode($map);//json对象 解码之后 $this->ajaxReturn($map,'json');
<br/>
$2.2 Erstellen Sie das Programm im Hintergrund und Rückkehr in den Vordergrund<br/>
$mapN = array("name"=>"zhangwei"); $this->ajaxReturn($mapN,'json');// 此时不需要json_encode() ,前台通过mapN.name 或者mapN['name']输出
res = eval("("+res+")");//通过res将从后台传过来的json字符串转换成数组 console.log(res.name);
$3 Zuschlag:
Der Unterschied zwischen echo und ajaxreturn hinsichtlich der Übertragung von Daten vom Hintergrund in den Vordergrund: echo kodiert das PHP-Array nicht in ein JSON-Übertragungsformat – JSON String-Typajaxreturn Die Funktion json_encode wird automatisch zum Codieren aufgerufenHier kann der Hintergrund Daten an den Front-End-Erfolg zurückgeben: Funktion (res) über Echo oder Ajaxreturn
Aber die Daten nach der Rückgabe Verschiedene Verwendungsmethoden:
1. String-Typ: Durch
Echoim Hintergrund können Sie den String direkt ausgeben an die res in der Rezeption,
2. Array-Typ: Ob es sich um den von der Rezeption übergebenen String-Array-Typ von JSON oder um den in generierten Array-Typ handelt Im Hintergrund kann die Methode, die über Ajaxreturn an die Rezeption zurückgegeben wird, sein:
Oder rufen Sie
array name.keyname
Tipps:
1. Übergeben Sie die JSON-Zeichenfolge an die Rückseite im Front Desk (selbst ist ein Array, aber es wird über stringify
im Front Desk in einen JSON-String umgewandelt. Im Hintergrund wird json_decode zum Dekodieren benötigt und kann zur Verwendung in ein PHP-Array umgewandelt werden ->key2. Wenn das im Hintergrund erstellte Array über json_encode in einen JSON-String konvertiert wird, müssen die Daten nach der Übermittlung an die Rezeption über weitergeleitet werden res = eval("("+res+")"); In JSON-Array konvertieren, Front-End-Aufrufmethode:
Array-Name['keyname'] oder Array-Name.Schlüsselname Verwandte Empfehlungen:
Konvertierung der PHP-ZeichenkodierungSo lösen Sie verstümmelte Zeichen in der PHP-Kodierung Konvertierung
Das obige ist der detaillierte Inhalt vonProblem bei der Kodierungskonvertierung zwischen JSON und PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!