【PHP】JSON传值与PHP接收的几种情况,json几种情况_PHP教程
【PHP】JSON传值与PHP接收的几种情况,json几种情况
利用Chrome的后台网络,分析了通过JQuery的$.ajax()把 json 数据 post 给 PHP时的几种情况:
<ul> <li> <p><span><strong>无法</strong></span>在PHP中通过$_POST 以及 $_REQUEST 获取json数据,即</p> <pre class="code"><span>$json</span> = <span>$_POST</span>['json']; <span>//</span><span> empty($json) 为1</span>
注:PHP 默认只识别 application/x-www.form-urlencoded 标准的数据类型,因此,对型如 text/xml 或者 soap 或者 application/octet-stream 之类的内容无法解析,如果用 $_POST 数组来接收就会失败。
情况A:
<p>js里<span><strong>没有</strong></span>加入属性contentType: "application/json; charset=utf-8",</p> <pre class="code"><span>var</span> submit_sync = <span>function</span><span>() { $.ajax({ type: </span>"post"<span>, url: </span>'add-post-json.php'<span>, async: </span><span>false</span>, <span>//</span><span> 使用同步方式</span> <span>//</span><span> 1 需要使用JSON.stringify 否则格式为 a=2&b=3&now=14...</span> <span>//</span><span> 2 需要强制类型转换,否则格式为 {"a":"2","b":"3"}</span> <span> data: JSON.stringify({ a: parseInt($(</span>'input[name="a"]'<span>).val()), b: parseInt($(</span>'input[name="b"]'<span>).val()), now: </span><span>new</span> Date().getTime() <span>//</span><span> 注意不要在此行增加逗号</span> <span> }), dataType: </span>"json"<span>, success: </span><span>function</span><span>(data) { $(</span>'#result'<span>).text(data.result); } </span><span>//</span><span> 注意不要在此行增加逗号</span> <span> }); }</span>
- 使用 $GLOBALS['HTTP_RAW_POST_DATA'] 后无法获取到数据,即
<span>$json</span> = <span>$GLOBALS</span>['HTTP_RAW_POST_DATA']; <span>//</span><span> empty($json) 为 1</span>
- 使用file_get_contents("php://input"); 可以获取数据,即
<span>$json</span> = <span>file_get_contents</span>("php://input"); <span>//</span><span> empty($json) 为 0</span>
情况B:
<p>js里加入属性contentType: "application/json; charset=utf-8",</p> <pre class="code"><span>var</span> submit_sync = <span>function</span><span>() { $.ajax({ type: </span>"post"<span>, url: </span>'add-post-json.php'<span>, async: </span><span>false</span>, <span>//</span><span> 使用同步方式</span> <span>//</span><span> 1 需要使用JSON.stringify 否则格式为 a=2&b=3&now=14...</span> <span>//</span><span> 2 需要强制类型转换,否则格式为 {"a":"2","b":"3"}</span> <span> data: JSON.stringify({ a: parseInt($(</span>'input[name="a"]'<span>).val()), b: parseInt($(</span>'input[name="b"]'<span>).val()), now: </span><span>new</span> Date().getTime() <span>//</span><span> 注意不要在此行增加逗号</span> <span> }), <span><strong>contentType: </strong></span></span><strong>"application/json; charset=utf-8"</strong><span><span><strong>,</strong></span></span>
<em id="__mceDel"><span> dataType: </span>"json"<span>, success: </span><span>function</span><span>(data) { $(</span>'#result'<span>).text(data.result); } </span><span>//</span><span> 注意不要在此行增加逗号</span> <span> }); }</span></em>
- 使用 $GLOBALS['HTTP_RAW_POST_DATA'] 后可以获取到数据,即
<span>$json</span> = <span>$GLOBALS</span>['HTTP_RAW_POST_DATA']; <span>//</span><span> empty($json) 为 0</span>
- 使用file_get_contents("php://input"); 可以获取数据,即
<span>$json</span> = <span>file_get_contents</span>("php://input"); <span>//</span><span> empty($json) 为 0</span>
情况C:
<p>是否加入以下</p> <pre class="code"><span>header</span>('Content-Type:application/json;charset=utf-8');
对情况A与情况B的结果没有任何影响。
从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。下面这篇博客写的很详细,mark!
在PHP语言中使用JSON:http://www.ruanyifeng.com/blog/2011/01/json_in_php.html

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Gabungan golangWebSocket dan JSON: merealisasikan penghantaran dan penghuraian data Dalam pembangunan Web moden, penghantaran data masa nyata menjadi semakin penting. WebSocket ialah protokol yang digunakan untuk mencapai komunikasi dua hala Tidak seperti model respons permintaan HTTP tradisional, WebSocket membenarkan pelayan untuk menolak data secara aktif kepada klien. JSON (JavaScriptObjectNotation) ialah format ringan untuk pertukaran data yang ringkas dan mudah dibaca.

Anotasi Gson@Expose boleh digunakan untuk menandakan sama ada medan terdedah (terkandung atau tidak) untuk bersiri atau penyahsirilan. Anotasi @Expose boleh mengambil dua parameter, setiap parameter ialah nilai boolean dan boleh mengambil nilai benar atau salah. Untuk GSON bertindak balas terhadap anotasi @Expose, kita perlu mencipta tika Gson menggunakan kelas GsonBuilder dan perlu memanggil kaedah excludeFieldsWithoutExposeAnnotation(), yang mengkonfigurasi Gson untuk mengecualikan semua medan tanpa anotasi Expose daripada bersiri atau penyahserialisasian. Sintaks publicGsonBuildereexclud

MySQL5.7 dan MySQL8.0 ialah dua versi pangkalan data MySQL yang berbeza Terdapat beberapa perbezaan utama antara mereka: Peningkatan prestasi: MySQL8.0 mempunyai beberapa peningkatan prestasi berbanding MySQL5.7. Ini termasuk pengoptimum pertanyaan yang lebih baik, penjanaan pelan pelaksanaan pertanyaan yang lebih cekap, algoritma pengindeksan yang lebih baik dan pertanyaan selari, dsb. Penambahbaikan ini boleh meningkatkan prestasi pertanyaan dan prestasi keseluruhan sistem. Sokongan JSON: MySQL 8.0 memperkenalkan sokongan asli untuk jenis data JSON, termasuk penyimpanan, pertanyaan dan pengindeksan data JSON. Ini menjadikan pemprosesan dan memanipulasi data JSON dalam MySQL lebih mudah dan cekap. Ciri transaksi: MySQL8.0 memperkenalkan beberapa ciri transaksi baharu, seperti atomic

Kaedah pengoptimuman prestasi untuk menukar tatasusunan PHP kepada JSON termasuk: menggunakan sambungan JSON dan fungsi json_encode() menambah pilihan JSON_UNESCAPED_UNICODE untuk mengelakkan aksara melarikan diri menggunakan penimbal untuk meningkatkan prestasi pengekodan JSON; Pustaka pengekodan JSON.

Cara mengendalikan format data XML dan JSON dalam pembangunan C# memerlukan contoh kod khusus Dalam pembangunan perisian moden, XML dan JSON ialah dua format data yang digunakan secara meluas. XML (Extensible Markup Language) ialah bahasa penanda yang digunakan untuk menyimpan dan menghantar data, manakala JSON (JavaScript Object Notation) ialah format pertukaran data yang ringan. Dalam pembangunan C#, kami selalunya perlu memproses dan mengendalikan data XML dan JSON Artikel ini akan memfokuskan pada cara menggunakan C# untuk memproses kedua-dua format data ini dan melampirkan

Gunakan fungsi json.MarshalIndent dalam golang untuk menukar struktur menjadi rentetan JSON yang diformatkan Apabila menulis program dalam Golang, kita selalunya perlu menukar struktur menjadi rentetan JSON Dalam proses ini, fungsi json.MarshalIndent boleh membantu kita output berformat. Di bawah ini kami akan menerangkan secara terperinci cara menggunakan fungsi ini dan memberikan contoh kod khusus. Mula-mula, mari buat struktur yang mengandungi beberapa data. Berikut adalah petunjuk

Permulaan Pantas: Kaedah Pandas membaca fail JSON, contoh kod khusus diperlukan Pengenalan: Dalam bidang analisis data dan sains data, Pandas ialah salah satu perpustakaan Python yang penting. Ia menyediakan fungsi yang kaya dan struktur data yang fleksibel, serta boleh memproses dan menganalisis pelbagai data dengan mudah. Dalam aplikasi praktikal, kita sering menghadapi situasi di mana kita perlu membaca fail JSON. Artikel ini akan memperkenalkan cara menggunakan Panda untuk membaca fail JSON dan melampirkan contoh kod tertentu. 1. Pemasangan Panda

Anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahserilangan JSON: Pensirilan: @JsonIgnore: Abaikan harta @JsonProperty: Tentukan nama @JsonGetter: Gunakan kaedah get @JsonSetter: Gunakan kaedah yang ditetapkan Deserialization: @JsonIgnoreProperties: Abaikan harta @ JsonProperty: Nyatakan nama @JsonCreator: Gunakan pembina @JsonDeserialize: Logik tersuai
