我是一名PHP開發人員,負責處理將逐步解析JSON對象的代碼,以便在以最終形式輸出數據之前處理數據。下面是一些例子JSON(其非常大的,所以我刪除我最需要的物品,只是把無效部分):如何從PHP中的JSON輸出中去除無效字符
[
{
"items": [
{
// this is valid and what I need.
}
],
"espots": [
{
"content": "
[TopNavigation_Appliances]
"
}
]
},
我已經有效地從源頭上剝離了JSON要嚴格是屬該JSON數據傳遞給json_decode()。但是,我總是得到一個空結果,因爲JSON對象有一個無效的部分,我的代碼實際上並不需要運行。 JSON的整個「espots」部分在我的應用程序中是不需要的,但多行「內容」部分是擰json_decode()。有沒有在PHP中通過RegEx或一些漂亮的PHP的方式,將從JSON輸出中去除這些項目,以便我可以正確使用json_decode()來檢索n代碼,然後我的代碼可以按照我需要的方式操作和處理至?
下面是JSONLint(和另外一個驗證器)提供的錯誤消息:
Parse error on line 263:
... "content": "[TopNavigation_App
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
我收集的是「[導致無效的JSON,但我JSON的不是專家
。我已經嘗試以下無濟於事:
- str_replace()函數在其原始格式線
- 裝飾()和str_replace函數
- trim()
- str_replace刪除換行符然後嘗試str_replace()JSON的元兇部分。
你能更好地描述什麼是無效的嗎?你能告訴我們'json_decode()'失敗的代碼嗎? – Brad 2012-08-16 20:54:08
添加了JSONLint錯誤消息。然而,輸出並不是直的「內容」:「[,它的多行代碼如上所示 – 2012-08-16 21:01:09