php - 如何使用 PHP json_encode 用 [] 格式化数组数据
问题描述
目标: 使用json_encode将数组数据格式化成指定格式
这是通过 PHP json_encode 运行后数据所需的格式:
需要的格式
{
"top_level_data": [
{
"extension": {},
"sub_level_data1": 0
}
]
}
当我使用这个 PHP 时:
$data = array('top_level_data' => array('extension' => array(),
'sub_level_data1' => 0
)
)
$data = json_encode($data);
我得到这个不正确的输出:
{
"top_level_data":{
"extension":[],
"sub_level_data1": 0
}
}
问题: 如何修改我的 php 以将 {} 和 [] 作为所需格式包含在正确的位置?
解决方案
目前尚不清楚您是如何生成的$data
;如果是通过您显示的分配,那么您可以添加一个额外的array
at层top_level_data
,并将extension
值转换为对象:
$data = array('top_level_data' => array(
array('extension' => (object)array(),
'sub_level_data1' => 0
)
)
);
但是,如果您$data
从其他来源获得,您可以像这样修改它:
$data['top_level_data']['extension'] = (object)$data['top_level_data']['extension'];
$data['top_level_data'] = array($data['top_level_data']);
两种方法都会产生这个 JSON:
{
"top_level_data": [
{
"extension": {},
"sub_level_data1": 0
}
]
}
推荐阅读
- android - 为什么 TYPE_TEXT_FLAG_NO_SUGGESTIONS 不能禁用自动更正?
- node.js - 使用 findOne 进行获取的 Mongoose 错误处理
- python - Python完全匹配 - 字符串中的词典元素完全匹配
- python - 来自非唯一 id 的 Python Selenium 下载文件
- java - 上传图片在 Firebase 云存储中不起作用
- uwp - Raisepropertychanged 为 null,datacontext 更改后不通知属性
- scala - 预期地图 [] 但找到列表 [地图 []]
- android - FragmentActivity AndroidStudio 中的 GoogleMaps
- angular - Angular JWT 令牌刷新
- c - 获取突出显示的文本并使用它打开程序(复制 clipboard.exe 行为)