gpt4 book ai didi

javascript - 使用 PHP,如何将 JSON blob 附加到现有的多级 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 16:57:16 24 4
gpt4 key购买 nike

我正在尝试从外部文件中获取一些 JSON 数据,并将一些用户生成的 JSON 附加到其中,这些数据通过 GET 发送。在此示例中,我删除了 GET 业务并将新的 JSON 作为变量提供。

旧数据来自 data/test.json 并存储在变量 $oldData 中。

新数据将来自 GET,但在这个测试中它位于变量 $newData


这是来自 data/test.json

的 JSON
{
"monkeys": [
{
"id": 1424634259848,
"name": "Funky Monkey",
"description": "This sure is a funky monkey!",
"favoriteFoods": [
"bananas",
"cheese"
],
"image": "img/funky-monkey.jpg"
}
]
}

这是让我走到这一步的 PHP

$fileData = file_get_contents('data/test.json');
$oldData = json_decode($fileData, true);

$newData = json_decode('{"id": 1424634259848,"name": "Monkey Ball","description": "This is a video game, not a monkey!","favoriteFoods": ["bits","pixels"],"image": "img/monkey-ball.jpg"}', true);
$result = array_merge_recursive($oldData,$newData);

echo '<pre>' . print_r(json_encode($result), true) . '</pre>';

这是结果

{
"monkeys": [
{
"id": 1424634259848,
"name": "Funky Monkey",
"description": "This sure is a funky monkey!",
"favoriteFoods": [
"bananas",
"cheese"
],
"image": "img/funky-monkey.jpg"
}
],
"id": 1424634259848,
"name": "Monkey Ball",
"description": "This is a video game, not a monkey!",
"favoriteFoods": [
"bits",
"pixels"
],
"image": "img/monkey-ball.jpg"
}

不幸的是,第二只猴子在括号之外,而不是猴子数组中的第二项。

这是我想要的结果

{
"monkeys": [
{
"id": 1424634259848,
"name": "Funky Monkey",
"description": "This sure is a funky monkey!",
"favoriteFoods": [
"bananas",
"cheese"
],
"image": "img/funky-monkey.jpg"
},
{
"id": 1424634259848,
"name": "Monkey Ball",
"description": "This is a video game, not a monkey!",
"favoriteFoods": [
"bits",
"pixels"
],
"image": "img/monkey-ball.jpg"
}
]
}

我不关心 JSON 的键或值,我只想将新的 JSON blob 添加为 monkey 下的下一个索引。

所以,长话短说,使用 PHP 如何将该 blob 附加到多级 JSON 对象的末尾?

此外,我很高兴在堆栈溢出 上有许多类似的问题,也许我错过了一个涵盖该主题的问题。如果您知道涉及此问题的问题,请通过链接发表评论。

最佳答案

这是你想要的:

<?php

$json = '{
"monkeys": [
{
"id": 1424634259848,
"name": "Funky Monkey",
"description": "This sure is a funky monkey!",
"favoriteFoods": [
"bananas",
"cheese"
],
"image": "img/funky-monkey.jpg"
}
]
}';
$jsonArray = json_decode($json,true);
$newJson = '{"id": 1424634259848,"name": "Monkey Ball","description": "This is a video game, not a monkey!","favoriteFoods": ["bits","pixels"],"image": "img/monkey-ball.jpg"}';
$newJson = json_decode($newJson,true);
$jsonArray['monkeys'][] = $newJson;
$ultimateJson = json_encode($jsonArray);
var_dump($ultimateJson);

您正在组合两个数组,而不是将一个数组附加到另​​一个数组。 http://codepad.viper-7.com/Uy3Zbn

关于javascript - 使用 PHP,如何将 JSON blob 附加到现有的多级 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com