目前我正在嘗試使用 JSON.Parse 決議一個長物件該物件包含大量資料,但具體來說這會導致一個問題:
OG\'S RIDES
我通過 Ajas 呼叫獲取這些資料。我用 JSON.stringify 轉換資料
const jsonOrders = JSON.stringify(orders).replace(/[\/\(\)\']/g, "\\$&");
要在 Adob??e CEP 面板中使用此資料,我會像這樣傳遞資料:
csiRun.evalScript(`setupSwitchBlade('${jsonOrders}', '${layoutFile}', '${orderDate}', '${productTag}', 1)`);
該物件是一個包含多個專案的大字串,因此它類似于(只是從控制臺查看無效的示例):
{id: 113592, order_number: "204736", internal_order: "204736-0", order_date: "11-15-2021", custom1: "OG\'S RIDES"}
整個物件作為字串傳遞,然后我必須決議它。我是這樣決議的:
var orderParsed = JSON.parse(orders);
這會導致我收到 JSON.Parse 錯誤。
我將問題追溯到上面也指出的這個字串:
OG\'S RIDES
如您所見,問題的原因正在被轉義,但我仍然收到錯誤訊息。知道我該如何解決這個問題嗎?
uj5u.com熱心網友回復:
錯誤是 JSON 格式 Expecting 'STRING'!
{id: 113592, order_nu
-^
所以用雙引號包圍屬性 "
{"id": 113592, "order_number":...}
具有可讀格式:
const json = `{
"id": 113592,
"order_number": "204736",
"internal_order": "204736-0",
"order_date": "11-15-2021",
"custom1": "OG'S RIDES"
}`
console.log(JSON.parse(json))
//JAVASCRIPT Object:
//{ id: 113592, order_number: "204736", internal_order: "204736-0", order_date: "11-15-2021", custom1: "OG'S RIDES" }
uj5u.com熱心網友回復:
我認為問題在于您的屬性必須被參考才能成為有效的 JSON。不要將 JavaScript 物件表示法 (JSON) 與 JavaScript 混淆。:)
input = `{"id": 113592, "order_number": "204736", "internal_order": "204736-0", "order_date": "11-15-2021", "custom1": "OG\'S RIDES"}`
result = JSON.parse(input)
console.dir(result);
uj5u.com熱心網友回復:
您獲得的物件不是有效的字串化物件。因此,要解決您的問題,您必須先對物件進行字串化,然后再次決議它。
const object = JSON.stringify({id: 113592, order_number: "204736", internal_order: "204736-0", order_date: "11-15-2021", custom1: "OG\'S RIDES"});
// `{"id":113592,"order_number":"204736","internal_order":"204736-0","order_date":"11-15-2021","custom1":"OG'S RIDES"}`
const data = JSON.parse(object);
// {id: 113592, order_number: '204736', internal_order: '204736-0', order_date: '11-15-2021', custom1: "OG'S RIDES"}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/358318.html
標籤:javascript json
上一篇:事件不會從子元素冒泡到父元素
