php如何科學地json,PHP怎麼用

本文目錄一覽:

如何在PHP中解析json

PHP裡面有json_encode(數組)可以把數組給轉換成JSON字元串,

而json_decode(JSON字元串,boolean)可以把JSON字元串轉換成數組或者對象類型,第二個參數boolean默認為false表示對象類型,true表示解析為數組類型通過下表訪問

PHP JSON格式數據交互實例代碼詳解

在PHP中解析JSON主要用到json_encode和json_decode兩個PHP

JSON函數,比PHP解析XML方便很多,下面詳細介紹下PHP

JSON的使用。

JSON基礎介紹

JSON(JavaScript

Object

Notation)

是一種輕量級的數據交換格式。

JSON主要有兩種結構:

「名稱/值」對的集合,在PHP中可以理解為關聯數組

(associative

array)。

值的有序列表(An

ordered

list

of

values)。在PHP中可以理解為普通數組(array)。

對象是一個無序的「『名稱/值’對」集合。一個對象以「{」(左括弧)開始,「}」(右括弧)結束。每個「名稱」後跟一個「:」(冒號);「『名稱/值’

對」之間使用「,」(逗號)分隔。

數組是值(value)的有序集合。一個數組以「[」(左中括弧)開始,「]」(右中括弧)結束。值之間使用「,」(逗號)分隔。值(value)可以是雙引號括起來的字元串(string)、數值(number)、true、false、

null、對象(object)或者數組(array)。這些結構可以嵌套。

我目前對JSON的理解更偏向於數組,類似於PHP中的關聯數組,你可以將PHP數組轉換為JSON格式。

更多JSON的介紹請參考JSON官網和IBM關於JSON的介紹

PHP

JSON解析實例

PHP5.2開始已經將JSON作為PHP擴展的一部分,所以並不需要另外安裝JSON。另外為了保證下面的PHP

JSON實例不出現中文亂碼,請保證你的編碼格式為UTF8。

JSON是Javascript的一部分,首先我們看下Javascript中如何定義JSON

複製代碼

代碼如下:

var

json_obj

=

{‘WebName’:’PHP網站開發教程網’};

alert(json_obj.WebName);

var

json_arr

=[{‘WebName’:’PHP網站開發教程網’,’WebSite’:”},{‘ArtTitle’:’PHP

JSON實例講解’}]

alert(json_arr[1].ArtTitle);

var

php_json

=

[[‘PHP網站開發教程網’,”],[‘文章標題’,’PHP

JSON實例講解’]];

alert(php_json[1][0]);

在這段JSON實例代碼中我構建了所有的JSON形式,

第1行,定義了JSON以對象形式存在

第4行,定義了JSON以數組形式存在,嵌套了JSON對象,所以有點類似於PHP的關聯數組,其實仍然是對象。

第7行,定了JSON以普通數組形式存在。

注意:由於Javascript是區分大小寫的,所以訪問JSON關聯數組對象時注意key的大小寫問題。

PHP與JSON格式數據交互時,第一步需要將PHP數組轉換為JSON格式的數據,可使用PHP5自帶的json_encode函數,當PHP解析傳遞過來的JSON格式數據時需要使用json_decode函數進行解析轉換為PHP數組,PHP轉換並解析JSON數據的實例代碼如下

複製代碼

代碼如下:

?php

$json_arr

=

array(‘WebName’=’PHP網站開發教程網’,’WebSite’=”);

$php_json

=

json_encode($json_arr);

echo

$php_json;

$php_json

=

json_decode($php_json);

print_r($php_json);

?

說明:這裡通過PHP定義了關聯數組,然後通過json_encode轉換為JSON格式的數據,通過echo語句可以看到轉換後的JSON對象,通過PHP

JSON解析函數json_decode可以將JSON格式的數據解析為PHP的關聯數組。如果編碼不正確,JSON中文會出現亂碼。如果你使用Editplus調試PHP,請注意保存文件時編碼將ANSI改為UTF8。

最後我們來看下完整的PHP

JSON交互實例

複製代碼

代碼如下:

?php

$json_arr

=

array(‘WebName’=’PHP網站開發教程網’,’WebSite’=”);

$php_json

=

json_encode($json_arr);

?

script

type=”text/javascript”

var

php_json

=

?=$php_json?;

/script

script

type=”text/javascript”

function

php_json_dis(php_json)

{

alert(php_json.WebName);

alert(php_json.WebSite);

}

php_json_dis(php_json);

/script

至此,PHP通過json_encode和json_decode函數對JSON格式數據進行轉換和解析的實例就介紹完了。

PHP json數據寫入到json文件,讀取json文件

// 生成一個PHP數組

$data = array();

$data[‘name’] = ‘admin’;

$data[‘pwd’] = ‘123456’;

// 把PHP數組轉成JSON字元串

$json_string = json_encode($data);

// 寫入文件

file_put_contents(‘user.json’, $json_string);

// 從文件中讀取數據到PHP變數

$json_string = file_get_contents(‘user.json’);

// 把JSON字元串轉成PHP數組

$data = json_decode($json_string, true);

// 顯示出來看看

var_dump($data)

php解析json數據

json_encode

對中文的處理是有問題的:

不能處理GBK編碼,所有的GBK編碼都會替換成空字元;

utf8編碼的中文被編碼成unicode編碼,相當於javascript的escape函數

處理的結果。

為了能正確使用json,首先我們就應該在編碼上採用utf8編碼,然後再對

json_encode的返回結果稍加處理就可以得到正確的結果了。

即需要加:原始數據$json=iconv(“GBK”,”UTF-8″,$json);

json_decode之後需要顯示或使用時,再轉回來

echo iconv(“UTF-8″,”GBK”,$decode[‘data’][0][‘APPName’]);

如何正確運用PHP json

$ary = []; // 定義數組

$json_str = json_encode($ary);  // 轉碼為JSON格式的字元串

$ary = json_decode($json_str, true); // 轉碼為數組格式

$_object = json_decode($json_str);   // 轉碼為對象格式

php json 如何正確的get?

一般前端發送 ajax 的時候都有封裝好的,直接發送默認就是 json格式的數據,比如 jQuery.js的 $.ajax,$.get,$.post 等,

或者 axios 也可以。

直接把 json 字元串拼接到 url 中很容易出現問題,很可能會出現一些特殊字元沒有處理好的情況。

所以,建議直接使用成熟的庫。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/236083.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:57
下一篇 2024-12-12 11:58

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • JSON的MD5

    在Web開發過程中,JSON(JavaScript Object Notation)是最常用的數據格式之一。MD5(Message-Digest Algorithm 5)是一種常用…

    編程 2025-04-29
  • 使用Java將JSON寫入HDFS

    本篇文章將從以下幾個方面詳細闡述Java將JSON寫入HDFS的方法: 一、HDFS簡介 首先,先來了解一下Hadoop分散式文件系統(HDFS)。HDFS是一個可擴展性高的分散式…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 如何使用Newtonsoft datatable轉Json

    Newtonsoft DataTable 是一個基於.NET的JSON框架,也是一個用於序列化和反序列化JSON的強大工具。 在本文中,我們將學習如何使用Newtonsoft Da…

    編程 2025-04-28
  • 地理科學師範專業的教學應用與實踐

    隨著未來社會的發展,地理科學師範專業在我國的高等教育體系中扮演著越來越重要的角色。本文將從多個方面對該專業的教學應用與實踐進行詳細闡述,以期提高教師教學水平,增強學生學習體驗。 一…

    編程 2025-04-27
  • JPRC – 輕鬆創建可讀性強的 JSON API

    本文將介紹一個全新的 JSON API 框架 JPRC,通過該框架,您可以輕鬆創建可讀性強的 JSON API,提高您的項目開發效率和代碼可維護性。接下來將從以下幾個方面對 JPR…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • 使用Python獲取JSON並解析

    本文將介紹如何使用Python獲取JSON數據並解析相關內容。通過使用Python的第三方庫,我們可以輕鬆地處理JSON數據,包括讀取、提取和操作JSON數據。 一、獲取JSON數…

    編程 2025-04-27

發表回復

登錄後才能評論