您好,登錄后才能下訂單哦!
本篇內容主要講解“JS怎么把字符串轉成json對象”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“JS怎么把字符串轉成json對象”吧!
不管字符串是否含有轉義字符,都能轉換成 Json 對象
function strToJson(str){ var json = eval('(' + str + ')'); return json; }
function strToJson(str){ var json = (new Function("return " + str))(); return json; }
function strToJson(str){ return JSON.parse(str); }
使用 這種方式限制稍微多一些,需嚴格遵守JSON規范,如屬性都需用引號引起來,如下
var str = '{name:"jack"}'; var obj = JSON.parse(str); // --> parse error
name沒有用引號引起來,使用JSON.parse所有瀏覽器中均拋異常,解析失敗。
如果字符串是 undefined 或者 '',使用上面三種方式都會報錯,所以需要先特殊判斷一下字符串是否是 undefined 或者空字符串,如果不是則可以使用上面的三種方式來轉換,一般都是使用第一中方法,最簡單。
轉自:js將字符串轉換成json的三種方式
JSON.stringify 方法將某個對象轉換成 JSON 字符串形式
const userInfo= { name: 'zs', age: 20 } console.log(JSON.stringify(userInfo)); // {"name":"zs","age":20}
語法: 可以有三個參數,第一個是傳入要序列化的值,第二個為函數或者數組,第三個是文本添加縮進、空格和換行符
JSON.stringify(value, replacer, space)
value:第一個參數,將要序列后成 JSON 字符串的值。
replacer:【可選】第二個參數
(1) 如果該參數是一個函數,則在序列化過程中,被序列化的值的每個屬性都會經過該函數的轉換和處理;
(2) 如果參數是一個數組,則僅轉換該數組中具有鍵值的成員。成員的轉換順序與鍵在數組中的順序一樣。
(3) 如果該參數為未提供或者null ,則對象所有的屬性都會被序列化。
space:【可選】第三個參數,美化文本格式,文本添加縮進、空格和換行符,
(1) 如果 該參數 是一個數字,則返回值文本在每個級別縮進指定數目的空格
(2) 該參數最大值為10,如果 該參數大于 10,則文本縮進 10 個空格。
(3)該參數也可以使用非數字,如:\t。最大值為10
JSON.stringify(eval(stu, null, 2)
如果想把包含轉義字符的字符串轉成 json 字符串
先試用 eval 把字符串轉成 json 對象,然后使用 JSON.stringify 把 json 對象轉成 json 字符串
JSON.stringify(eval(`(${stu})`), null, 2)
如果還需要特別判斷一下空字符串,加個三目運算符就行
stu ? JSON.stringify(eval(`(${stu})`), null, 2) : ''
到此,相信大家對“JS怎么把字符串轉成json對象”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。