PHP怎么生成去掉中括号的JSON
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP怎么生成去掉中括号的JSON相关的知识,希望对你有一定的参考价值。
主要是测试发现百度EChart的option不支持含有中括号的json数据,含有中括号会导致一些功能不能使用。
字母索引的数组的是花括号,数字索引是中括号
所以你构造数组进行json_encode的时候 就不要做这样的东西
$data[0]=array("img"=>"xx","url"=>"xx");$data[1]=array("img"=>"xx","url"=>"xx");
$xx=array("url_list"=>$data);
json_encode($xx);这样就会生成中括号的了。。追问
我查出原因了 不是你说这个原因哈,是因为数组嵌套多了一层才出现的这个问题
追答我只能告诉你 这跟多维数组真的没关系。。。
我上面也描述错误了 是你json_encode 一个下标从0开始连续自增的数组 就会出现中括号的
//加上 JSON_FORCE_OBJECT 参考技术C php中无法生成去掉括号的JSON,但是你可以把JSON当做一个字符串,然后把括号替换掉! 参考技术D 数组转过去就成中括号了吧。。。你去了数组或者增加数组再json就没事了 json就变成字典了
php操作JSON
js自带json的格式,即对象字面量,就是用json生成的对象。
JSON基本语法:
并列的数据使用逗号分隔。
映射用冒号表示
并列数据的集合(数组)用方括号表示
映射的集合(对象)用大括号表示
例如:
[
{"name":"小明",“age”:"23","sex":"男"}
{"name":"小红","age":"11","sex":"女"}
]
将php中的数组转化为JSON
$people = array(
array("name"=>"小明","age"=>"23","sex"=>"男"),
array("name"=>"小红","age"=>"11","sex"=>"女")
);
$jsonObj = json_encode($people);
var_dump($jsonObj);
显示结果如下:
string(101)
"[{"name":"\u5c0f\u660e","age":"23","sex":"\u7537"},
{"name":"\u5c0f\u7ea2","age":"11","sex":"\u5973"}]"
PHP中操作JSON的重要函数:
加密:json_encode()
解密:json_decode()
对象转换为JSON数据
注意,只转换共有变量,私有变量不转换。
例如:
class myjson{
public $name="小明";
public $age = "22";
public $sex = "男";
public function getPeople(){
echo $this->name.$this->age.$this->sex;
}
}
$myobj = new myjson();
$myobj->getPeople();//输出:小明22男
$jsonObj = json_encode($myobj);
echo $jsonObj
//输出:{"name":"\u5c0f\u660e","age":"22","sex":"\u7537"}
将JSON转换为基本数据格式:
$jsonStr = '{"name":"qqq","age":"22"}';
$myArray = json_decode($jsonStr,true);
print_r($myArray); //输出:Array ( [name] => qqq [age] => 22 )
//如果不加true,则默认转换为对象类型
以上是关于PHP怎么生成去掉中括号的JSON的主要内容,如果未能解决你的问题,请参考以下文章