我有这段代码
$bom = Foo::getFooFromName($fooName);
$content = json_decode($foo['content'], true);
$content[] = $foo_name . ':'. $qty ;
Foo::where('id', $foo['id'])->update([
'content' => json_encode($content, JSON_FORCE_OBJECT | JSON_UNESCAPED_SLASHES)
]);
当执行它时,我知道这个JSON STRING:
{"0":{"171":"3"},"1":"396:3"}
这部分已经存在,所以JSON字符串是正确的:{“0”:{“171”:“3”}但是当我运行`$ content [] = $ foo_name时。 ':'。 $ qty;
Foo::where('id', $foo['id'])->update([
'content' => json_encode($content, JSON_FORCE_OBJECT | JSON_UNESCAPED_SLASHES)
]);
似乎我无法正确格式化JSON字符串,如下所示:
{"0":{"171":"3"},"1":{"396":"3"}}
任何想法都将不胜感激。
答案 0 :(得分:0)
您正在向数组中插入一个字符串,而您应该插入另一个数组。
替换
$content[] = $foo_name . ':'. $qty ;
与
$content[] = [$foo_name => $qty];