php - 附加自定义标签时有效的 json 输出
问题描述
我现有的 php 代码为这段代码提供了一个有效的 json
echo json_encode($player,JSON_FORCE_OBJECT);
输出
{
"0": {
"0": "1.g",
"1": "d4",
"2": "3.g",
"3": "8.g",
"4": "wc",
"5": "s.b",
"6": "r.y"
},
"7": {
"0": "9.y",
"1": "2.g",
"2": "2.g",
"3": "5.g",
"4": "1.y",
"5": "7.r",
"6": "3.b"
}
}
当我尝试将这段代码用于自定义标签时
$player_no=0;
while($player_no<$no_of_players){
echo json_encode (['Player '.$player_no=>$player[$player_no]],JSON_FORCE_OBJECT);
$player_no++;
}
它给出了一个无效的 json
{
"Player 0": {
"0": "9.r",
"1": "4.g",
"2": "r.g",
"3": "wc",
"4": "2.b",
"5": "5.r",
"6": "8.g"
}
}{
"Player 7": {
"0": "7.y",
"1": "6.g",
"2": "6.y",
"3": "8.r",
"4": "5.y",
"5": "r.y",
"6": "7.y"
}
}
可以让我知道为什么它无效以及阅读第二个代码会出现什么问题?需要在 php 服务器端代码中进行哪些更改才能正确有效输出相对于第二个
解决方案
您实际上是在输出多个 json 字符串(每个循环一个),而是存储数据并在循环后全部输出...
$player_no=0;
$data = [];
while($player_no<$no_of_players){
$data['Player '.$player_no] = $player[$player_no];
$player_no++;
}
echo json_encode($data ,JSON_FORCE_OBJECT))
推荐阅读
- flutter - E/FlutterFcmService(6350): 致命:找不到回调 Flutter
- pine-script - 如何在 Pine Script 中创建文本框选项以输入脚本
- javascript - 创建并分配角色 Discord.js
- reactjs - 从 NEXT.js 中的另一个 div 访问 div 中的组件
- visual-studio - 在 VS CE 2019 中创建数据连接器项目时无法加载文件或程序集 TemplateWizardInterface
- rows - 合并多个数据框后是否需要填充分类或数字的缺失值?
- javascript - 模仿网站上的“在 Playstore 应用程序中打开”按钮
- python - 在 Pandas `read_csv` 中添加了额外的行
- javascript - 使用 JavaScript 和 Django 实现实时搜索
- swift - 我可以在 SwiftUI 的状态变量中使用泛型类型吗?