亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP json_decode()使用有效JSON返回NULL?

PHP json_decode()使用有效JSON返回NULL?

PHP
神不在的星期二 2019-10-19 14:34:54
我將這個JSON對象存儲在純文本文件中:{    "MySQL": {        "Server": "(server)",        "Username": "(user)",        "Password": "(pwd)",        "DatabaseName": "(dbname)"    },    "Ftp": {        "Server": "(server)",        "Username": "(user)",        "Password": "(pwd)",        "RootFolder": "(rf)"    },    "BasePath": "../../bin/",    "NotesAppPath": "notas",    "SearchAppPath": "buscar",    "BaseUrl": "http:\/\/montemaiztusitio.com.ar",    "InitialExtensions": [        "nem.mysqlhandler",        "nem.string",        "nem.colour",        "nem.filesystem",        "nem.rss",        "nem.date",        "nem.template",        "nem.media",        "nem.measuring",        "nem.weather",        "nem.currency"    ],    "MediaPath": "media",    "MediaGalleriesTable": "journal_media_galleries",    "MediaTable": "journal_media",    "Journal": {        "AllowedAdFileFormats": [            "flv:1",            "jpg:2",            "gif:3",            "png:4",            "swf:5"        ],        "AdColumnId": "3",        "RSSLinkFormat": "%DOMAIN%\/notas\/%YEAR%-%MONTH%-%DAY%\/%TITLE%/",        "FrontendLayout": "Flat",        "AdPath": "ad",        "SiteTitle": "Monte Maíz: Tu Sitio",        "GlobalSiteDescription": "Periódico local de Monte Maíz.",        "MoreInfoAt": "Más información aquí, en el Periódico local de Monte Maíz.",        "TemplatePath": "templates",        "WeatherSource": "accuweather:SAM|AR|AR005|MONTE MAIZ",        "WeatherMeasureType": "1",        "CurrencySource": "cotizacion-monedas:Dolar|Euro|Real",        "TimesSingular": "vez",        "TimesPlural": "veces"    }}當我嘗試用解碼時json_decode(),它返回NULL。為什么?該文件是可讀的(我嘗試了回顯file_get_contents(),但工作正常)。我已經針對http://jsonlint.com/測試了JSON ,它是完全有效的。怎么了解在Google上尋找答案,我回到SO:調用webservice后json_decode返回NULL。我的JSON文件具有UTF BOM序列(一些不應包含的二進制字符),因此破壞了JSON結構。進入十六進制編輯器,刪除了字節。一切恢復正常。為什么會這樣呢?因為我使用Microsoft Windows的記事本編輯了文件。好主意!
查看完整描述

3 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

它可以是特殊字符的編碼。您可以要求json_last_error()獲得確切的信息。


更新:問題已解決,請查看問題中的“解決方案”段落。


查看完整回答
反對 回復 2019-10-19
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

這對我有用


json_decode( preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true );


查看完整回答
反對 回復 2019-10-19
?
森欄

TA貢獻1810條經驗 獲得超5個贊

如果您在chrome中檢查請求,您會看到JSON是文本,因此已向JSON添加了空白代碼。


您可以使用清除它


$k=preg_replace('/\s+/', '',$k);


然后,您可以使用:


json_decode($k)


print_r 然后將顯示數組。


查看完整回答
反對 回復 2019-10-19
  • 3 回答
  • 0 關注
  • 1063 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號