我遇到了一段JSON和PHP的問題json_decode()
。 我們從客戶的發佈解決方案收到JSON,儘管驗證通過,但其中的部分內容跳過了json_decode()
。PHP json_decode跳過源代碼JSON的一部分
{
"articles":{
"article":{
"title":"This is the title",
"document":{
"text_article":{
"p":[
"- The first sentence.",
" "
],
"h3":"The first subtitle",
"p":[
"- One sentence.",
"Another sentence.",
"- A quote.",
" "
],
"h3":{
"strong":"Second subtitle"
},
"p":[
"An additional sentence",
"One more.",
{
"a":{
"href":"https://www.example.com",
"target":"_blank",
"$":"Link text"
}
},
"(Some extra information near the bottom)"
]
}
},
"knr":"0001"
}
}
}
進口之後,它看起來是這樣的:
{
"articles": {
"article": {
"title": "This is the title",
"document": {
"text_article": {
"p": [
"An additional sentence",
"One more.",
{
"a": {
"href": "https://www.example.com",
"target": "_blank",
"$": "Link text"
}
},
"(Some extra information near the bottom)"
],
"h3": {
"strong": "Second subtitle"
}
}
},
"knr": "0001"
}
}
}
我懷疑問題是幾個 「P」 和 「text_article」, 「H3」 元素的存在。但this online validator按預期顯示,所以我們的客戶覺得它是正確的。 (JSONLint顯示與json_decode()
雖然相同的問題)
任何方式來獲得此正確導入到PHP,或者我正確推動重寫代碼?
這是PHP的限制,可能不存在於其他編程語言中?在這種情況下,客戶可能是正確的,我需要看一箇中間解決方案。 – Rune
我不知道任何編程語言沒有這個限制。我相當肯定,所使用的開發語言不應該依賴於客戶提供的數據格式。至少,您可以編寫某種解析器,它在使用'json_decode'之前更改json文件的結構。 – dhh
看起來最好的解決方案就像你所建議的那樣,我會試着讓客戶改變他們的JSON來使用一個數組。 – Rune