php怎么输出json数组?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php怎么输出json数组?相关的知识,希望对你有一定的参考价值。

例如{“a”:"1",“b”:"2",“你”:"3",“我”:"4",“他”:"1",“end”:0
数组长短不定,key值也不定,怎么取出每个key以及值?

对于特定的不能使用json_decode的json的话,建议直接输出

比如:

<?php
   echo '';
   //假设你的数据是从数据库中读取
   $query = mysql_query(查询语句);
   while($row = mysql_fetch_array($query))
       echo $row['字段']; //在这里构造出json显示的数据
   
   echo '';
?>

希望可以帮到你

追问

我现在的问题就是你所说的字段不是确定的,每次执行不一样,所以不能按到这个来读数据
我实际是想把数组读出来组合成一个长字符
{“a”:"1",“b”:"2",“你”:"3",“我”:"4",“他”:"1",“end”:0

变成 a:1,b:2,你:3......

参考技术A print_r(json_decode($arr,true)); $arr = 你的字符串追问

这个我知道啊,我是要用里面的数据另作他用,不是单单的查看下

php解决json_encode输出GB2312中文问题 (数组)

在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。

这个函数的功能是将数值转换成json数据存储格式。

如下所示:

 

$arr = array(\'Name\'=>\'希亚\', \'Age\'=>20); 
$jsonencode = json_encode($arr); 
echo $jsonencode; 

运行结果:

{"Name":null,"Age":20} 

json_encode 函数中中文被编码成 null 了,Google 了一下,很简单,为了与前端紧密结合,Json 只支持 utf-8 编码,我认为是前端的 Javascript 也是 utf-8 的原因。解决方案如下:

$array = array 
( 
    \'title\'=>iconv(\'gb2312\',\'utf-8\',\'这里是中文标题\'), 
    \'body\'=>\'abcd...\' 
); 
 
echo json_encode($array); 

运行结果:

{"title":"\\u8fd9\\u91cc\\u662f\\u4e2d\\u6587\\u6807\\u9898","body":"abcd..."} 

数组中所有中文在json_encode之后都不见了或者出现\\u2353等。

解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。

一个示例程序如下:

/************************************************************** 
 * 
 *    使用特定function对数组中所有元素做处理 
 *    @param    string    &$array        要处理的字符串 
 *    @param    string    $function    要执行的函数 
 *    @return boolean    $apply_to_keys_also        是否也应用到key上 
 *    @access public 
 * 
 *************************************************************/ 
function arrayRecursive(&$array, $function, $apply_to_keys_also = false) 
{ 
    static $recursive_counter = 0; 
    if (++$recursive_counter > 1000) { 
        die(\'possible deep recursion attack\'); 
    } 
    foreach ($array as $key => $value) { 
        if (is_array($value)) { 
            arrayRecursive($array[$key], $function, $apply_to_keys_also); 
        } else { 
            $array[$key] = $function($value); 
        } 
 
        if ($apply_to_keys_also && is_string($key)) { 
            $new_key = $function($key); 
            if ($new_key != $key) { 
                $array[$new_key] = $array[$key]; 
                unset($array[$key]); 
            } 
        } 
    } 
    $recursive_counter--; 
} 
 
/************************************************************** 
 * 
 *    将数组转换为JSON字符串(兼容中文) 
 *    @param    array    $array        要转换的数组 
 *    @return string        转换得到的json字符串 
 *    @access public 
 * 
 *************************************************************/ 
function JSON($array) { 
    arrayRecursive($array, \'urlencode\', true); 
    $json = json_encode($array); 
    return urldecode($json); 
} 
 
$array = array(\'Name\'=>\'希亚\', \'Age\'=>20); 
 
echo JSON($array); 

 

 

原文地址:http://www.cnblogs.com/caiyujiang/archive/2011/07/08/2101004.html

 

以上是关于php怎么输出json数组?的主要内容,如果未能解决你的问题,请参考以下文章

php 数组中有反斜杠,解析为json格式就变成\/这样怎么解决啊

php获取服务器端数据得到json后转换数组始终为null是怎么回事

php数组转换成json格式后汉字怎么就被解析成字母了啊

如何使用php解析json数组并显示?

PHP json_encode($arr) 为啥会改变数组的顺序,怎么解决。在线等

PHP json多维数组追加数组怎么写?