我有一個問題,解碼一個JSON字符串與PHP,我很確定我知道是什麼造成它,但不知道如何解決它。我將一個數組轉換成JSON到一個隱藏的textarea,然後將其他信息發佈到我的PHP腳本中。在textarea POST後解碼JSON
以下是放入文本區域的JSON字符串示例:我正在使用$("#product_options").val(JSON.stringify(productOptions));
將JSON放置到文本框中。
[{
"optionID": "217",
"optionValueID": ["3"]
}, {
"optionID": "218",
"optionValueID": ["5"]
}, {
"optionID": "223",
"optionValueID": ["8", "11"]
}, {
"optionID": "208",
"optionValue": ["test"]
}, {
"optionID": "209",
"optionValue": ["zxvsdfg"]
}, {
"optionID": "219",
"optionValue": ["2011-02-20"]
}, {
"optionID": "221",
"optionValue": ["22:25"]
}, {
"optionID": "220",
"optionValue": ["2011-02-20 22:25"]
}]
解碼很好,但一旦我用$_POST['json_array']
張貼和讀取字段的值在PHP中也不會進行解碼。下面是轉換成JSON的整個帖子:
{
"full_name": "sdfg",
"phone": "sdfg",
"email": "sdfg",
"notes": "sdgf",
"product_id": "42",
"product_options": "[{"
optionID ":"
217 ","
optionValueID ":["
3 "]},{"
optionID ":"
218 ","
optionValueID ":["
5 "]},{"
optionID ":"
223 ","
optionValueID ":["
8 ","
11 "]},{"
optionID ":"
208 ","
optionValue ":["
test "]},{"
optionID ":"
209 ","
optionValue ":["
zxvsdfg "]},{"
optionID ":"
219 ","
optionValue ":["
2011 - 02 - 20 "]},{"
optionID ":"
221 ","
optionValue ":["
22: 25 "]},{"
optionID ":"
220 ","
optionValue ":["
2011 - 02 - 20 22: 25 "]}]"
}
編輯:
這是我使用的JSON $productOptions = json_decode($_POST['product_options']);
解碼PHP代碼。
我收到的錯誤是:Invalid argument supplied for foreach()
但這是因爲我試圖從JSON轉換後的數組中循環。
*「它不會解碼」 *請提供更多的信息。會發生什麼?你會得到哪個錯誤? –
問題是你發佈的最後一個JSON是[not valid](http://jsonlint.com)。有兩個'''w這個打破了。直到你發佈代碼,你如何創建發佈的字符串,它很難幫助你 – kero
看起來像你有一個JSON字符串在主JSON字符串內引用,刪除這些引號,它應該工作得很好 – Ghost