JSON字符串中的格式错误

时间:2017-04-03 15:52:38

标签: php arrays json

我有这段代码

$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"}}

任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在向数组中插入一个字符串,而您应该插入另一个数组。

替换

$content[] =  $foo_name . ':'.  $qty  ;

$content[] =  [$foo_name =>  $qty];
相关问题