簡體   English   中英

轉換為JS對象

[英]Convert to JS Object

如何將其轉換為JS對象:

{"info":["Image has been added"],"success":["No success Sorry!"]}

JSON.parse引發錯誤,並說“不是有效的JSON。 JS的新手,無法解決該問題。

我正在使用來自express的connect-flash將flash消息傳輸到客戶端。 為此,我使用以下代碼:

if Object.keys(locals.flashes).length !== 0
    script.
      flashArr="#{JSON.stringify(locals.flashes)}"

在客戶端,對象的表示形式不是有效的JSON。 我該如何處理。

如何將其轉換為JS對象?

如果我這樣嘗試,它將返回有效的JS對象。 我只是在全球范圍內替換了" 使用String.prototyp.replace"" ,然后使用JSON.parse()這樣解析

 invalid_data = '{"info":["Image has been added"],"success":["No success Sorry!"]}'; valid_data = invalid_data.replace(/"/g, '"'); console.log(JSON.parse(valid_data)); 

如建議的那樣,您需要將HTML實體解析為字符,即將" " ,最簡單的方法是使用正則表達式:

 var str = '{"info":["Image has been added"],"success":["No success Sorry!"]}'; var obj = JSON.parse(str.replace(/"/g,'"')); console.log(obj); 

當然,如果代碼中包含其他HTML實體,則最好使用內置HTML解析器:

 var str = '{"info":["Image has been added"],"success":["No success Sorry!"]}'; var el = document.createElement('div'); el.innerHTML = str; var obj = JSON.parse(el.textContent); console.log(obj); 

但是對於單個實體, 替換可能更快,更有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM