本文介绍了php json_encode 返回空值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

数组([sEcho] =>1[iTotalRecords] =>7521[iTotalDisplayRecords] =>1[aaData] =>大批([0] =>大批([0] =>Nordic Capital 收购 SiC Processing[1] =>2010-06-21/nordic-capital-buys-sic-processing[2] =>PEHub媒体[3] =>商业[4] =>完全的[5] =>Nordic Capital 已从 Frog Capital 手中收购了德国工业回收公司 SiC Processing AG 70% 的股份.没有透露销售价格.SiC Processing 的创始家族持有 25% 的股份,而前主要投资者 Zouk Ventures 持有 5% 的股份.[6] =>Admin,中国,Frog Capital,德国,意大利,Iyad Omari,制造,挪威,PEHub Media,光伏晶圆制造,可再生能源,半导体,美国)))回声 json_encode($myArr);

{"sEcho":"1","iTotalRecords":7521,"iTotalDisplayRecords":"1","aaData":[["Nordic Capital 收购 SiC Processing</a></div>","2010-06-21/nordic-capital-buys-sic-processing</div>","PEHub Media","Business","completed",null,"Admin,中国,Frog Capital,德国,意大利,Iyad Omari,制造,挪威,PEHub Media,光伏晶圆制造,可再生能源,半导体,美国]]}

注意完成后字符串中间的空值

这是为什么,我需要执行什么转义/操作才能对其进行编码?

我试过了,addslashes

解决方案

来自手册:

请注意,如果您尝试对一个包含非 utf 值的数组,你会得到空值生成的 JSON 字符串.你可以批量编码一个的所有元素带有 array_map 函数的数组:

$encodedArray = array_map(utf8_encode, $myArr);回声 json_encode($encodedArray);
Array
(
    [sEcho] => 1
    [iTotalRecords] => 7521
    [iTotalDisplayRecords] => 1
    [aaData] => Array
        (
            [0] => Array
                (
                    [0] => Nordic Capital Buys SiC Processing
                    [1] => 2010-06-21/nordic-capital-buys-sic-processing
                    [2] => PEHub Media
                    [3] => Business
                    [4] => completed
                    [5] => Nordic Capital has acquired a 70% stake in SiC Processing AG, a German industrial recycling company, from Frog Capital. No sale price was disclosed.  SiC Processing’s founding family retains a 25% holding, while former lead investor Zouk Ventures retains a 5% stake.

                    [6] => Admin, China, Frog Capital, Germany, Italy, Iyad Omari, Manufacturing, Norway, PEHub Media, Photovoltaic Wafer Manufacturing, Renewable Energy, Semiconductor, United States
                )

        )

)

echo json_encode($myArr);

Note the null in the middle of the string after completed

Why is this, what escape/manipulation do I need to perform in order to encode this?

I have tried, addslashes

解决方案

From the manual:

$encodedArray = array_map(utf8_encode, $myArr);
echo json_encode($encodedArray);

这篇关于php json_encode 返回空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 08:55