iT邦幫忙

0

php json_decode 失敗

  • 分享至 

  • xImage

我用 php 想把資料 json_decode
有試過如果整段字串貼在程式碼,json_decode 是沒有問題的
但如果是從資料庫取出來再 json_decode 就是會失敗
(原本幾筆資料從資料庫取出再 json_decode 是正常的)
後來發現是好像是因為有逗號的關係
請問有人有遇過類似的問題嗎?

[
    {
        "color": "黑,棕",
        "name": "衣服"
    }
]
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
haward79
iT邦研究生 2 級 ‧ 2022-07-16 23:21:21

你上面的資料是哪裡來的?
上面資料不是json格式,json格式最外圍是由大括號 {} 包起來的,而不會是中括號 [],中括號是代表陣列array。

理論上value中有逗號不會導致問題,只要值的資料型態是string就可以包含逗號。

建議你提供以下資料,大家比較好幫你抓問題:

  • database的類型(Ex:MySQL)
  • database匯出後的檔案
  • 你的程式 ( 包含如何從資料庫中抓資料以及如何送到json_decode() )
淺水員 iT邦大師 6 級 ‧ 2022-07-17 02:25:56 檢舉

參考:MDN-使用 JSON 資料

不限於陣列或物件,只要是符合標準 JSON 物件形式的任何資料,都可以夾帶進 JSON 檔案中。因此,單一字串或數字也可能是有效的 JSON 物件,但不一定有用就是了...

kaochihyu iT邦新手 5 級 ‧ 2022-07-17 15:21:50 檢舉

了解,感謝解答!

1
海綿寶寶
iT邦大神 1 級 ‧ 2022-07-17 10:08:06

沒問題
逗號很好呀

https://ithelp.ithome.com.tw/upload/images/20220717/20001787j0TlY2TleU.png

kaochihyu iT邦新手 5 級 ‧ 2022-07-17 15:27:30 檢舉

了解,感謝回答!

1
淺水員
iT邦大師 6 級 ‧ 2022-07-17 10:44:14

如果是下列這狀況,那一開始存到資料庫的內容就不要多加那個逗號就好了

<?php
$s1 = '[
    {
        "color": "黑,棕",
        "name": "衣服"
    }
]';

var_dump(json_decode($s1)); //正常輸出

//多加逗號
$s2 = '[
    {
        "color": "黑,棕",
        "name": "衣服",
    }
]';

var_dump(json_decode($s2)); //輸出 NULL
kaochihyu iT邦新手 5 級 ‧ 2022-07-17 15:26:51 檢舉

了解,感謝回答!

我要發表回答

立即登入回答