php JSON資料格式化方法

2021-09-10 12:26:19 字數 4639 閱讀 6654

php 的json_encode能把陣列轉換為json格式的字串。字串沒有縮排,中文會轉為unicode編碼,例如\u975a\u4ed4。人閱讀比較困難。現在這個方法在json_encode的基礎上再進行一次美化處理。使人能方便閱讀內容。

1. 使用 json_encode 輸出

輸出:

,]}
可以看出,這種格式人閱讀很困難。

2. 使用 jsonformat 輸出

<?php

/** json資料格式化* @param  mixed  $data   資料* @param  string $indent 縮排字元,預設4個空格* @return json*/

function

jsonformat

($data, $indent=null)

elseif(($char=='}' || $char==']') && $outofquotes)        }        $ret .= $char;                if(($char==',' || $char=='            for($j=0; $j<$pos; $j++)        }        $prevchar = $char;    }    return $ret;}/** 將陣列元素進行urlencode* @param string $val*/

function

jsonformatprotect

(&$val)

輸出:

,            ]}

php5.4 以後,json_encode增加了json_unescaped_unicode ,json_pretty_print 等幾個常量引數。使顯示中文與格式化更方便。

輸出:

,            ]}

json常量引數說明:

以下常量表示了 json_last_error() 所返回的錯誤型別。

json_error_none (integer)沒有錯誤發生。自 php 5.3.0 起生效。json_error_depth (integer)到達了最大堆疊深度。自 php 5.3.0 起生效。json_error_state_mismatch (integer)出現了下溢(underflow)或者模式不匹配。自 php 5.3.0 起生效。json_error_ctrl_char (integer)控制字元錯誤,可能是編碼不對。自 php 5.3.0 起生效。json_error_syntax (integer)語法錯誤。 自 php 5.3.0 起生效。json_error_utf8 (integer)異常的 utf-8 字元,也許是因為不正確的編碼。 此常量自 php 5.3.1 起生效。

下面的常量可以和 json_encode() 的 form 選項結合使用。

json_hex_tag (integer)所有的 < 和 > 轉換成 \u003c 和 \u003e。 自 php 5.3.0 起生效。json_hex_amp (integer)所有的 & 轉換成 \u0026。 自 php 5.3.0 起生效。json_hex_apos (integer)所有的 ' 轉換成 \u0027。 自 php 5.3.0 起生效。json_hex_quot (integer)所有的 " 轉換成 \u0022。 自 php 5.3.0 起生效。json_force_object (integer)使乙個非關聯陣列輸出乙個類(object)而非陣列。 在陣列為空而接受者需要乙個類(object)的時候尤其有用。 自 php 5.3.0 起生效。json_numeric_check (integer)將所有數字字串編碼成數字(numbers)。 自 php 5.3.3 起生效。json_bigint_as_string (integer)將大數字編碼成原始字元原來的值。 自 php 5.4.0 起生效。json_pretty_print (integer)用空白字元格式化返回的資料。 自 php 5.4.0 起生效。json_unescaped_slashes (integer)不要編碼 /。 自 php 5.4.0 起生效。json_unescaped_unicode (integer)以字面編碼多位元組 unicode 字元(預設是編碼成 \u***x)。 自 php 5.4.0 起生效。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

php 的json_encode能把陣列轉換為json格式的字串。字串沒有縮排,中文會轉為unicode編碼,例如\u975a\u4ed4。人閱讀比較困難。現在這個方法在json_encode的基礎上再進行一次美化處理。使人能方便閱讀內容。

1. 使用 json_encode 輸出

輸出:

,]}
可以看出,這種格式人閱讀很困難。

2. 使用 jsonformat 輸出

<?php

/** json資料格式化* @param  mixed  $data   資料* @param  string $indent 縮排字元,預設4個空格* @return json*/

function

jsonformat

($data, $indent=null)

elseif(($char=='}' || $char==']') && $outofquotes)        }        $ret .= $char;                if(($char==',' || $char=='            for($j=0; $j<$pos; $j++)        }        $prevchar = $char;    }    return $ret;}/** 將陣列元素進行urlencode* @param string $val*/

function

jsonformatprotect

(&$val)

輸出:

,            ]}

php5.4 以後,json_encode增加了json_unescaped_unicode ,json_pretty_print 等幾個常量引數。使顯示中文與格式化更方便。

輸出:

,            ]}

json常量引數說明:

以下常量表示了 json_last_error() 所返回的錯誤型別。

json_error_none (integer)沒有錯誤發生。自 php 5.3.0 起生效。json_error_depth (integer)到達了最大堆疊深度。自 php 5.3.0 起生效。json_error_state_mismatch (integer)出現了下溢(underflow)或者模式不匹配。自 php 5.3.0 起生效。json_error_ctrl_char (integer)控制字元錯誤,可能是編碼不對。自 php 5.3.0 起生效。json_error_syntax (integer)語法錯誤。 自 php 5.3.0 起生效。json_error_utf8 (integer)異常的 utf-8 字元,也許是因為不正確的編碼。 此常量自 php 5.3.1 起生效。

下面的常量可以和 json_encode() 的 form 選項結合使用。

json_hex_tag (integer)所有的 < 和 > 轉換成 \u003c 和 \u003e。 自 php 5.3.0 起生效。json_hex_amp (integer)所有的 & 轉換成 \u0026。 自 php 5.3.0 起生效。json_hex_apos (integer)所有的 ' 轉換成 \u0027。 自 php 5.3.0 起生效。json_hex_quot (integer)所有的 " 轉換成 \u0022。 自 php 5.3.0 起生效。json_force_object (integer)使乙個非關聯陣列輸出乙個類(object)而非陣列。 在陣列為空而接受者需要乙個類(object)的時候尤其有用。 自 php 5.3.0 起生效。json_numeric_check (integer)將所有數字字串編碼成數字(numbers)。 自 php 5.3.3 起生效。json_bigint_as_string (integer)將大數字編碼成原始字元原來的值。 自 php 5.4.0 起生效。json_pretty_print (integer)用空白字元格式化返回的資料。 自 php 5.4.0 起生效。json_unescaped_slashes (integer)不要編碼 /。 自 php 5.4.0 起生效。json_unescaped_unicode (integer)以字面編碼多位元組 unicode 字元(預設是編碼成 \u***x)。 自 php 5.4.0 起生效。

php JSON資料格式化方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!php 的json encode能把陣列轉換為json格式的字串。字串沒有縮排,中文會轉為unicode編碼,例如 u975a u4ed4。人閱讀比較困難。現在這個方法在json encode的基礎上再進行一次美化處理。使人能方便閱讀內容。1.使用...

資料格式化

一維資料,二維資料,多維資料 就是典型的多維資料 高維資料 資料儲存 資料表示 資料操作 列表型別可以表達一維有序資料 for迴圈可以遍歷資料,進而對每個資料進行處理 如果資料間無序,可以使用集合型別 集合型別可以表達一維無序資料 for迴圈可以遍歷資料,進而對每個資料進行處理 儲存方式一 空格分隔...

Jquery資料格式化

資料格式化 千分號 方法1 function tothousands num g,1,方法2 千分號 before 14612741 after 14,612,741 param data returns function formattmpl data while reg.test num els...