首页 > 解决方案 > Laravel如何在使用querybuilder从数据库中选择json字段时删除斜杠

问题描述

基本上我json在我的数据库中有一个有效的 json 格式的字段。当我在 json 查看器中粘贴 json 字段时,我得到了类似的东西

"priceByBlock":[
      {
         "maxArea":6049,
         "minPrice":"$4,455,000",
         "unitNum":102,
         "maxPrice":"$35,000,000",
         "type":"Block 86",
         "minArea":1313
      },
      {
         "maxArea":5683,
         "minPrice":"$9,922,000",
         "unitNum":52,
         "maxPrice":"$33,000,000",
         "type":"Block 88",
         "minArea":2756
      }
   ],
   "priceByBedroom":[
      {
         "maxArea":6049,
         "minPrice":"$33,000,000",
         "unitNum":4,
         "maxPrice":"$35,000,000",
         "type":null,
         "minArea":5673
      },

但是当我根据 laravel 文档进行这样的查询时 ->select('xp_ecoprop_summary.json->priceByBlock')

我有类似的东西

"json_unquote(json_extract(`xp_ecoprop_summary`.`json`, '$.\"priceByBlock\"'))": "[{\"type\": \"Block 
39\", \"maxArea\": 3003, \"minArea\": 614, \"unitNum\": 24, \"maxPrice\": \"$6,777,000\", \"minPrice\": \"$1,147,000\"}, {\"type\": \"Block 41\", \"maxArea\": 2842, \"minArea\": 614, \"unitNum\": 24, 
\"maxPrice\": \"$6,233,382\", \"minPrice\": \"$1,252,050\"}, {\"type\": \"Block 43\", \"maxArea\": 3003, 
\"minArea\": 614, \"unitNum\": 22, \"maxPrice\": \"$7,390,000\", \"minPrice\": \"$1,218,000\"}, 
{\"type\": \"Block 45\", \"maxArea\": 2842, \"minArea\": 614, \"unitNum\": 24, \"maxPrice\": 
\"$7,197,000\", \"minPrice\": \"$1,174,000\"}, {\"type\": \"Block 47\", \"maxArea\": 2325, \"minArea\": 
1539, \"unitNum\": 15, \"maxPrice\": \"$4,631,000\", \"minPrice\": \"$2,609,200\"}]"

我只想像格式一样返回我的 json,以便我可以使用它在我的表中循环,foreach price in priceByBlock然后像这样price.maxArea, price.minPriceans 等等。

标签: phpjsonlaravel

解决方案


要解决这个问题。您可以将数据保存为

json_encode($yourdata, JSON_UNESCAPED_SLASHES);

https://www.php.net/manual/en/function.json-encode.php


推荐阅读