程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中數組轉換成json字符串程序代碼

PHP中數組轉換成json字符串程序代碼

編輯:關於PHP編程

數據轉換js格式的數據是我們常用一種數據傳遞的方法,特別像ajax中會時常用到把數據轉換成json然後再轉換回來,下面看一個實例。    代碼如下 復制代碼

function array_to_json($array) {
 if (! is_array ( $array )) {
  return false;
 }
 
 $associative = count ( array_diff ( array_keys ( $array ), array_keys ( array_keys ( $array ) ) ) );
 if ($associative) {
 
  $construct = array ();
  foreach ( $array as $key => $value ) {
  
   // We first copy each key/value pair into a staging array,
   // formatting each key and value properly as we go.
  


   // Format the key:
   if (is_numeric ( $key )) {
    $key = "key_$key";
   }
   $key = """ . addslashes ( $key ) . """;
  
   // Format the value:
   if (is_array ( $value )) {
    $value = array_to_json ( $value );
   } else if (! is_numeric ( $value ) || is_string ( $value )) {
    $value = """ . addslashes ( $value ) . """;
   }
  
   // Add to staging array:
   $construct [] = "$key: $value";
  }
 
  // Then we collapse the staging array into the JSON form:
  $result = "{" . implode ( ",", $construct ) . "}";
 
 } else { // If the array is a vector (not associative):
 


  $construct = array ();
  foreach ( $array as $value ) {
  
   // Format the value:
   if (is_array ( $value )) {
    $value = array_to_json ( $value );
   } else if (! is_numeric ( $value ) || is_string ( $value )) {
    $value = """ . addslashes ( $value ) . """;
   }
  
   // Add to staging array:
   $construct [] = $value;
  }
 
  // Then we collapse the staging array into the JSON form:
  $result = "[" . implode ( ", ", $construct ) . "]";
 }
 
 return $result;
}

你可以試試這個 然後json_encode換成上面的函數看看正常了嗎

 代碼如下 復制代碼

if($_GET['enews']=='ok'){
    echo json_encode(array('a'=>'王進'));exit;
}
?><script type="text/javascript" src="jquery.js"></script><script type="text/javascript">
$(function(){
    $.get("?enews=ok", function(result){
    alert(result);
 });
});
</script>
 

關於php中json_encode

json_encode()將PHP的不同類型的變量轉換為對應的JSON字符串 string json_encode(mixed $value [, int

$options = 0])

PHP 5.3.0

JSON_HEX_QUOT: 將所有的雙引號(”)轉換為u0022。
// 實例代碼:

 代碼如下 復制代碼 $data = '"';
echo json_encode($data); // """
echo json_encode($data, JSON_HEX_QUOT);

 // "u0022"■JSON_HEX_TAG: 將所有的大於號(>)轉換為u003E,將

所有的小於號(<)轉換為 u003C。
JSON_HEX_AMP: 將所有的與號(&)轉換為 u0026。
JSON_HEX_APOS: 將所有的單引號(’)轉換為u0027。
JSON_FORCE_OBJECT: 當value為非關聯數組時強制輸出結果為JSON對象。在接收者要求數據為對象且value為空數組時

使用。

// 實例代碼:

 代碼如下 復制代碼 $data = array();
echo json_encode($data); // []
echo json_encode($data, JSON_FORCE_OBJECT); // {}

PHP 5.3.3

JSON_NUMERIC_CHECK: Encodes numeric strings as numbers.

PHP 5.4.0

JSON_BIGINT_AS_STRING: Encodes large integers as their original string value. Available since PHP
5.4.0.

JSON_PRETTY_PRINT: Use whitespace in returned data to format it. Available since PHP 5.4.0.
JSON_UNESCAPED_SLASHES: Don’t escape /. Available since PHP 5.4.0.
JSON_UNESCAPED_UNICODE: Encode multibyte Unicode characters literally (default is to escape as uXXXX).

Available since PHP 5.4.0.


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved