当我查询我的数据库时,我得到以下json响应:
[{"id":1,"name":"my name","street":"Sava Burica","city":"Belgrade","state":"Zemun","zip":"11080","country":"Serbia","giftwrap":null,"products":"[{\"count\":2,\"id\":1,\"price\":275,\"name\":\"Kayak\"},{\"count\":1,\"id\":2,\"price\":48.95,\"name\":\"Lifejacket\"}]"}]
除了products
值是一个字符串并且它应该是一个数组之外,这一切都很好。
我使用Laravel 5.3作为我的框架,但我认为这不会有所作为。
我可以以某种方式强制它将数组作为数组而不是字符串返回吗?
答案 0 :(得分:2)
在主字符串中,您的产品也是JSON字符串编码数据,所以您需要做的就是解码它
$s = '[{"id":1,"name":"my name","street":"Sava Burica","city":"Belgrade","state":"Zemun","zip":"11080","country":"Serbia","giftwrap":null,"products":"[{\"count\":2,\"id\":1,\"price\":275,\"name\":\"Kayak\"},{\"count\":1,\"id\":2,\"price\":48.95,\"name\":\"Lifejacket\"}]"}]';
$address = json_decode($s,true);
$s = $address[0]['products'];
$address[0]['products'] = json_decode($s,true);
print_r($address);
返回
Array
(
[0] => Array
(
[id] => 1
[name] => my name
[street] => Sava Burica
[city] => Belgrade
[state] => Zemun
[zip] => 11080
[country] => Serbia
[giftwrap] =>
[products] => Array
(
[0] => Array
(
[count] => 2
[id] => 1
[price] => 275
[name] => Kayak
)
[1] => Array
(
[count] => 1
[id] => 2
[price] => 48.95
[name] => Lifejacket
)
)
)
)