簡體   English   中英

Javascript用Array的單雙引號替換兩個雙引號

[英]Javascript replace two double quotes with single double quotes of Array

CSV 文件數據

"Name", "OfcLocation", "IPAddress", "Port" ,"Role"
"Tom", "USA",  "XX.XXX.X.XX", "4300", "Admin"
"Mark", "Spain", "XX.XXX.X.XX", "4080", "Limited"
"Jack", "Japan", "XX.XXX.X.XX", "9200", "Admin"

我正在閱讀 CSV 文件。 我使用 npm 包ngx-parser來讀取 csv 文件。 讀取 csv 文件后,它的返回數據格式如下。

const response:any[];


[""Name"", ""OfcLocation"", ""IPAddress"", ""Port"" ,""Role""],
[""Tom"", ""USA"",  ""XX.XXX.X.XX"", ""4300"", ""Admin"" ]
[ ""Mark"", ""Spain"", ""XX.XXX.X.XX"", ""4080"", ""Limited"" ]
[ ""Jack"", ""Japan"", ""XX.XXX.X.XX"", ""9200"", ""Admin"" ]

我試圖通過用單引號替換兩個雙引號

let jData = JSON.stringify(response).replace(/""/g,'"');

並再次嘗試轉換為 JSON

let parseData = JSON.parse(jData);

收到錯誤為Uncaught SyntaxError: Unexpected token \\ in JSON 基本上,我想要這樣的數據,用單引號替換兩個雙引號后

["Name", "OfcLocation", "IPAddress", "Port" ,"Role"],
["Tom", "USA",  "XX.XXX.X.XX", "4300", "Admin" ]
[ "Mark", "Spain", "XX.XXX.X.XX", "4080", "Limited" ]
[ "Jack", "Japan", "XX.XXX.X.XX", "9200", "Admin" ]

我正在更改我的答案,您必須先將您的回復字符串化,然后您必須像這樣替換該字符串..

如果 stringify 不起作用,則將響應更改為這樣的字符串let string= `${your response data here}`然后替換

 let string = `[""Name"", ""OfcLocation"", ""IPAddress"", ""Port"" ,""Role""],[""Tom"", ""USA"", ""XX.XXX.X.XX"", ""4300"", ""Admin"" ][ ""Mark"", ""Spain"", ""XX.XXX.X.XX"", ""4080"", ""Limited"" ][ ""Jack"", ""Japan"", ""XX.XXX.X.XX"", ""9200"", ""Admin"" ]` let myString = string.replace(/""/g, '"'); console.log(myString)

當您將回復作為字符串化 json 返回時,這些引號將像這樣反斜杠:

"[{\"Name\":\"OfcLocation\",\"IPAddress\":\"Port\"}]"

你是說當你得到你的結果時,它們看起來像這樣嗎? 這看起來很奇怪。

"[{\"\"Name\"\":\"\"OfcLocation\"\",\"\"IPAddress\"\":\"\"Port\"\"}]"

好的,在這樣的引用之前使用反斜杠可能會有所幫助。

response.replace(/\"\"/g,'"');

如果這不起作用,則測試您的 stringify 方法,它確實返回了一個有效的字符串。

您可以嘗試在此處驗證您的 json:

暫無
暫無

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

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