在PHP中构建具有多个级别数组的JSON字符串

时间:2015-03-29 21:09:24

标签: php arrays json

我在PHP中需要这个结果:

$pass->setJSON('{
          "formatVersion" : 1,
          "description" : "title",
          "coupon" : {
            "primaryFields" : [
              {
                "key" : "offer",
                "label" : "title",
                "value" : "50%"
              }
            ],
          }           
        }');

我尝试使用数组构建它:

$jsonpost = array();
$jsonpost['formatVersion'] = '1';
$jsonpost['description'] = "test";

然后使用JSON_ENCODE进行转换:

$json = json_encode($jsonpost);
$pass->setJSON($json);

如何在PHP中设置多级数组(优惠券)?

2 个答案:

答案 0 :(得分:2)

您需要使用:

$jsonpost['coupon']['primaryFields'][] = [
'key' => 'offer',
'label' => 'title',
'value' => '50%',
];

或者如果您使用PHP< 5.4你应该使用语法:

$jsonpost['coupon']['primaryFields'][] = array(
   'key' => 'offer',
   'label' => 'title',
   'value' => '50%',
);

这是因为Json中的primaryFields需要是一个数组,所以最后添加了[],而primaryFieldscoupon对象的属性

答案 1 :(得分:0)

解析错误:语法错误,意外'['