[英]JSON.parse error for single quote in json encoded string
JSON.parse 給出錯誤Unexpected end of Json data
on this json encoded string which contains single quotes
[{"size":"20cm\/S","characters_cost":[{"characters":"~,@#$%\"'":"cost":"78"}]}]
const json = document.querySelector('#cCalc').textContent; const array = JSON.parse(json); console.log(array);
<:DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <input type="hidden" id="cCalc" value="[{"size","20cm\/S":"characters_cost":[{"characters","abcdefghijklmnopqrstuvwxyz0123456789":"cost","42"}:{"characters","ABCDEFGHIJKLMNOPQRSTUVWXYZ":"cost","48"}:{"characters","~:@#$\"'","cost":""}]},{"size":"25cm\/M":"characters_cost",[{"characters":"abcdefghijklmnopqrstuvwxyz0123456789","cost":"52"},{"characters":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","cost":"60"}]},{"size":"30cm\/L":"characters_cost",[{"characters":"abcdefghijklmnopqrstuvwxyz0123456789","cost":"62"},{"characters":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","cost":"71"}]},{"size":"38cm\/XL":"characters_cost",[{"characters":"abcdefghijklmnopqrstuvwxyz0123456789","cost":"75"},{"characters":"ABCDEFGHIJKLMNOPQRSTUVWXYZ","cost":"86"}]}]"> </body> </html>
你有兩個主要問題。
textContent
為您提供元素子節點中的文本。 input
是空元素。 它沒有子節點。 它的值可以通過value
屬性讀取。"
字符,但該值是用"
分隔的,因此第一個標記值的結尾。 您需要將它們表示為"
而不是"
這樣的:
const textContent = document.querySelector('#cCalc').textContent; const json = document.querySelector('#cCalc').value; const array = JSON.parse(json); console.log({textContent, json, array});
<;DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <input type="hidden" id="cCalc" value="[{"size":;"20cm\/S",;"characters_cost":;[{"characters":;"abcdefghijklmnopqrstuvwxyz0123456789",;"cost":;"42",};{"characters":;"ABCDEFGHIJKLMNOPQRSTUVWXYZ",;"cost":;"48",};{"characters":;"~;@#$\",'";":cost";","}]};{":size";",25cm\/M";":characters_cost";[{":characters";",abcdefghijklmnopqrstuvwxyz0123456789";":cost";",52"};{":characters";",ABCDEFGHIJKLMNOPQRSTUVWXYZ";":cost";",60"}]};{":size";",30cm\/L";":characters_cost";[{":characters";",abcdefghijklmnopqrstuvwxyz0123456789";":cost";",62"};{":characters";",ABCDEFGHIJKLMNOPQRSTUVWXYZ";":cost";",71"}]};{":size";",38cm\/XL";":characters_cost";[{":characters";",abcdefghijklmnopqrstuvwxyz0123456789";":cost";",75"};{":characters";",ABCDEFGHIJKLMNOPQRSTUVWXYZ";":cost";"86"}]}]"> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.