php中怎么把json字符串[]变为

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中怎么把json字符串[]变为相关的知识,希望对你有一定的参考价值。

php的某个方法中有这样一个数组:

当我在'data' => array()这个元素数组中什么都不写时,post数据发现发送过去的json字符串是“data”: [];而我想要的是"data": ,就是说我想让方括号变为花括号,这个怎么做?前提是'data' => array()这个数组中什么都不写,谢谢!

json_encode($data,JSON_FORCE_OBJECT);

第二个参数设置定义空数组的时候,把空数组当成对象还是数组的方式

如果符合你的要求的话请采纳一下
参考技术A 改成'data' => (object) array()
强制转成object就会让json_encode强制解释成对象
参考技术B 你去了解一下json的结构 你就知道 为什么会是[]了追问

我想问的不是为什么是[],而是怎么把[]变为?

我想问的不是为什么是[],而是怎么把[]变为?

参考技术C 你这是要改变json的规则么?为什么要变成花括号?追问

对方的格式要求

php中怎么把json双引号前加上转义符\

通过AJAX传到PHP的json字符串有时候加上反斜杠”\”来转义,PHP处理时需要先去掉反斜杠,然后再json_decode.

$str = stripslashes($_POST['json']);
$arr = json_decode($str,true);

PS:php get抓取json怎样去除双引号前面的反斜杠
你这个不算标准的JSON格式数据,可以先将\"替换成"即可。
再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个参数为true即可。
若仍输出为NULL,是由于存在BOM头信息,

复制代码 代码如下:

$arr = json_decode(trim($json,chr(239).chr(187).chr(191)),true);

转换即可。
本文全部内容介绍完了,希望对大家在使用PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠中有所帮助。
参考技术A <?php
$arr=array('sex'=>'男','age'=>30,'job'=>'程序猿');
$json=json_encode($arr);
$result=addslashes($json);
echo "json数据:".$json.'<br>转义结果:'.$result;

参考技术B 用addcslashes函数,$json = addcslashes($json,'"');

在php.ini里把magic_quotes_gpc设置为on时就会自动加上
再用
if(get_magic_quotes_gpc)
来判断
参考技术C stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。
参考资料:http://www.w3school.com.cn/php/func_string_stripslashes.asp本回答被提问者和网友采纳
参考技术D 通过AJAX传到PHP的json字符串有时候加上反斜杠”\”来转义,PHP处理时需要先去掉反斜杠,然后再json_decode.

$str = stripslashes($_POST['json']);
$arr = json_decode($str,true);

PS:php get抓取json怎样去除双引号前面的反斜杠
你这个不算标准的JSON格式数据,可以先将\"替换成"即可。
再用json_decode()系统函数将其转为json对象,如需转为数组加上第二个参数为true即可。
若仍输出为NULL,是由于存在BOM头信息,

复制代码 代码如下:

$arr = json_decode(trim($json,chr(239).chr(187).chr(191)),true);

转换即可。

以上是关于php中怎么把json字符串[]变为的主要内容,如果未能解决你的问题,请参考以下文章

php中怎么把json双引号前加上转义符\

用PHP调用API返回JSON值,怎么把JSON返回值调用到html呢?

php使用json_encode把二维数组变为json格式,Javascrpt如何变回数组

php如何将json对象转字符串

js中如何把一串数字转换为数组

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