JS把字符串轉成json對象的三種方法示例詳解
js 把字符串轉成json對象的三種方法
不管字符串是否含有轉義字符,都能轉換成 Json 對象
1, js自帶的eval函數(shù),其中需要添加小括號eval('('+str+')');
function strToJson(str){ var json = eval('(' + str + ')'); return json; }
2,new Function形式
function strToJson(str){ var json = (new Function("return " + str))(); return json; }
3,全局的JSON對象
function strToJson(str){ return JSON.parse(str); }
使用 這種方式限制稍微多一些,需嚴格遵守JSON規(guī)范,如屬性都需用引號引起來,如下
var str = '{name:"jack"}'; var obj = JSON.parse(str); // --> parse error
name沒有用引號引起來,使用JSON.parse所有瀏覽器中均拋異常,解析失敗。
如果字符串是 undefined 或者 '',使用上面三種方式都會報錯,所以需要先特殊判斷一下字符串是否是 undefined 或者空字符串,如果不是則可以使用上面的三種方式來轉換,一般都是使用第一中方法,最簡單。
javascript 把對象轉換成 json 字符串
JSON.stringify
JSON.stringify 方法將某個對象轉換成 JSON 字符串形式
const userInfo= { name: 'zs', age: 20 } console.log(JSON.stringify(userInfo)); // {"name":"zs","age":20}
JSON.stringify 語法
語法: 可以有三個參數(shù),第一個是傳入要序列化的值,第二個為函數(shù)或者數(shù)組,第三個是文本添加縮進、空格和換行符
JSON.stringify(value, replacer, space)
value:第一個參數(shù),將要序列后成 JSON 字符串的值。
replacer:【可選】第二個參數(shù)
(1) 如果該參數(shù)是一個函數(shù),則在序列化過程中,被序列化的值的每個屬性都會經(jīng)過該函數(shù)的轉換和處理;
(2) 如果參數(shù)是一個數(shù)組,則僅轉換該數(shù)組中具有鍵值的成員。成員的轉換順序與鍵在數(shù)組中的順序一樣。
(3) 如果該參數(shù)為未提供或者null ,則對象所有的屬性都會被序列化。
space:【可選】第三個參數(shù),美化文本格式,文本添加縮進、空格和換行符,
(1) 如果 該參數(shù) 是一個數(shù)字,則返回值文本在每個級別縮進指定數(shù)目的空格
(2) 該參數(shù)最大值為10,如果 該參數(shù)大于 10,則文本縮進 10 個空格。
(3)該參數(shù)也可以使用非數(shù)字,如:\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對象的三種方法的文章就介紹到這了,更多相關js 字符串轉成json對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JS實現(xiàn)快速比較兩個字符串中包含有相同數(shù)字的方法
這篇文章主要介紹了JS實現(xiàn)快速比較兩個字符串中包含有相同數(shù)字的方法,涉及javascript字符串的遍歷、排序、比較等相關操作技巧,需要的朋友可以參考下2017-09-09JavaScript如何監(jiān)測數(shù)組的變化
最近在造輪子的時候遇到了這么一個問題,那就是數(shù)組在調(diào)用內(nèi)部方法的時候怎么才可以監(jiān)聽到數(shù)組發(fā)生了變化,這篇文章主要給大家介紹了關于JavaScript如何監(jiān)測數(shù)組變化的相關資料,需要的朋友可以參考下2021-07-07微信小程序?qū)崿F(xiàn)比較功能的方法匯總(五種方法)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)比較功能的方法,本文給大家列舉出五種方式,每種方法通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03淺析JS給原始數(shù)據(jù)類型加屬性和方法為什么不報錯
這篇文章主要想和大家一起探討一下JavaScript中給原始數(shù)據(jù)類型添加屬性和方法為什么不報錯,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下2023-11-11