我环顾四周,找到了file_get_contents
和file_put_contents
这两个函数,并试图制作一个基本代码,将我的代码中Name
的{{1}}更改为&#39 ;测试Face',但它完全覆盖了JSON。
这是我在PHP代码之前的JSON:
[0]['Face']
应该改为
[{"Hat":{"Name":"Stylin' Shades","Id":"221177193"},{"Gear":{"Name":"Red Sparkle Time Claymore", "Id":"221181437"}}, {"Face":{"Name":"Joyful Smile", "Id":"209995366"}]
但相反,整个JSON将替换为[{"Hat":{"Name":"Stylin' Shades","Id":"221177193"},{"Gear":{"Name":"Red Sparkle Time Claymore", "Id":"221181437"}}, {"Face":{"Name":"Testing Face", "Id":"209995366"}]
我的PHP:
[{"Face":{"Name":"No"}}]
谢谢!
答案 0 :(得分:3)
您的JSON有语法错误。特别是:
...,{"Gear":{"Name":"Red Sparkle Time Claymore", "Id":"221181437"}}, {"...
你必须删除第一对括起"Gear"
的花括号。最后一个{
没有}
朋友。
修正了JSON:
[{"Hat":{"Name":"Stylin' Shades","Id":"221177193"},"Gear":{"Name":"Red Sparkle Time Claymore", "Id":"221181437"}, "Face":{"Name":"Joyful Smile", "Id":"209995366"}}]
接下来,您需要使用json_decode
的第二个参数将返回的对象转换为关联数组:
$data = json_decode($jsonString, true);
了解更多here。 (参见$assoc
论证。)
答案 1 :(得分:1)
将第二个参数添加到json_deconde
为true(当为TRUE时,返回的对象将转换为关联数组。)
阅读更多内容:
<?php
$file = 'notifier.json';
$jsonString = file_get_contents($file);
$data = json_decode($jsonString, true);
$data[0]['Face']['Name'] = 'Testing Face';
$newJSON = json_encode($data);
file_put_contents($file, $newJSON);
?>