php - 如何将 JSON 字符串转换为数组
问题描述
用php,我需要将json数组转换成数组,我该怎么办,json_encode对我不起作用,提前感谢帮助。
//json序列
[
{
"name":"Menu",
"sub":
[
{
"name":"Menu 2",
"url":"menu-2.php"
}
]
}
]
我应该这样做
array(
'name' => 'Menu',
'sub' => array(
array(
'name' => 'Menu 2',
'url' => 'menu-2.php'
)
)
)
我正在使用此函数创建 json 数组我必须在这里进行更改吗?我不是很擅长数组。
<?php
$connect = new PDO("mysql:host=localhost; dbname=propanel_001", "root", "");
$parent_category_id = "";
$query = "SELECT * FROM tb_sayfalar";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
$data = get_node_data($parent_category_id, $connect);
}
echo json_encode(array_values($data));
function get_node_data($parent_category_id, $connect)
{
$query = "SELECT * FROM tb_sayfalar WHERE parent_id = '".$parent_category_id."'";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$output = array();
foreach($result as $row)
{
$sub_array = array();
if (array_values(get_node_data($row['id'], $connect))) {
$sub_array['name'] = $row['page_name'];
$sub_array['sub'] = array_values(get_node_data($row['id'], $connect));
}else{
$sub_array['name'] = $row['page_name'];
$sub_array['url'] = $row['page_url'].".php";
}
$output[] = $sub_array;
}
return $output;
}
?>
解决方案
这是你需要的,json_decode($json,true);
<?php
$json = '[{"name":"Menu","sub":[{"name":"Menu 2","url":"menu-2.php"}]}]';
$array = json_decode($json,1);
print_r($array[0]);
?>
或将其用作具有var_export()的变量的可解析字符串表示形式
<?php
$json = '[{"name":"Menu","sub":[{"name":"Menu 2","url":"menu-2.php"}]}]';
$array = var_export(json_decode($json,1)[0]);
print($array);
?>
推荐阅读
- python-3.x - (Python)如何替换.txt文件中特定行中的某个子字符串,同时保留其他内容而不覆盖它
- rasa - ModuleNotFoundError:没有名为“rasax”的模块
- python - Sphinx 文档 - 从 Markdown 文件将图像添加到文档中
- javascript - 如何禁用 Flexbox 的内联
- python - Numpy迭代所有维度,但最后一个维度未知
- javascript - javascript:打开下拉菜单时不会触发点击事件
- python - 无法使用 time_major 格式创建 TFLite 模型
- html - 尽管代码相同,但切换菜单按钮在索引页面上有效,但在其他页面上无效 - 为什么?
- vb.net - Late Binding:可以用OBJECT类型以外的对象变量来实现吗?
- mysql - 从交易表中获取每月的增长率