js 把字符串轉(zhuǎn)成json對(duì)象的三種方法
不管字符串是否含有轉(zhuǎn)義字符,都能轉(zhuǎn)換成 Json 對(duì)象
1, js自帶的eval函數(shù),其中需要添加小括號(hào)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對(duì)象
function strToJson(str){
return JSON.parse(str);
}
使用 這種方式限制稍微多一些,需嚴(yán)格遵守JSON規(guī)范,如屬性都需用引號(hào)引起來,如下
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse error
name沒有用引號(hào)引起來,使用JSON.parse所有瀏覽器中均拋異常,解析失敗。
如果字符串是 undefined 或者 '',使用上面三種方式都會(huì)報(bào)錯(cuò),所以需要先特殊判斷一下字符串是否是 undefined 或者空字符串,如果不是則可以使用上面的三種方式來轉(zhuǎn)換,一般都是使用第一中方法,最簡(jiǎn)單。
轉(zhuǎn)自:js將字符串轉(zhuǎn)換成json的三種方式
javascript 把對(duì)象轉(zhuǎn)換成 json 字符串
JSON.stringify
JSON.stringify 方法將某個(gè)對(duì)象轉(zhuǎn)換成 JSON 字符串形式
const userInfo= {
name: 'zs',
age: 20
}
console.log(JSON.stringify(userInfo));
// {"name":"zs","age":20}
JSON.stringify 語(yǔ)法
語(yǔ)法: 可以有三個(gè)參數(shù),第一個(gè)是傳入要序列化的值,第二個(gè)為函數(shù)或者數(shù)組,第三個(gè)是文本添加縮進(jìn)、空格和換行符
JSON.stringify(value, replacer, space)
value:第一個(gè)參數(shù),將要序列后成 JSON 字符串的值。
replacer:【可選】第二個(gè)參數(shù)
(1) 如果該參數(shù)是一個(gè)函數(shù),則在序列化過程中,被序列化的值的每個(gè)屬性都會(huì)經(jīng)過該函數(shù)的轉(zhuǎn)換和處理;
(2) 如果參數(shù)是一個(gè)數(shù)組,則僅轉(zhuǎn)換該數(shù)組中具有鍵值的成員。成員的轉(zhuǎn)換順序與鍵在數(shù)組中的順序一樣。
(3) 如果該參數(shù)為未提供或者null ,則對(duì)象所有的屬性都會(huì)被序列化。
space:【可選】第三個(gè)參數(shù),美化文本格式,文本添加縮進(jìn)、空格和換行符,
(1) 如果 該參數(shù) 是一個(gè)數(shù)字,則返回值文本在每個(gè)級(jí)別縮進(jìn)指定數(shù)目的空格
(2) 該參數(shù)最大值為10,如果 該參數(shù)大于 10,則文本縮進(jìn) 10 個(gè)空格。
(3)該參數(shù)也可以使用非數(shù)字,如:\t。最大值為10
最多使用方式
JSON.stringify(eval(stu, null, 2)
如果想把包含轉(zhuǎn)義字符的字符串轉(zhuǎn)成 json 字符串
先試用 eval 把字符串轉(zhuǎn)成 json 對(duì)象,然后使用 JSON.stringify 把 json 對(duì)象轉(zhuǎn)成 json 字符串
JSON.stringify(eval(`(${stu})`), null, 2)
如果還需要特別判斷一下空字符串,加個(gè)三目運(yùn)算符就行
stu ? JSON.stringify(eval(`(${stu})`), null, 2) : ''
參考:
js將字符串轉(zhuǎn)換成json的三種方式文章來源:http://www.zghlxwxcb.cn/news/detail-415929.html
JSON.stringify用法文章來源地址http://www.zghlxwxcb.cn/news/detail-415929.html
到了這里,關(guān)于js 把字符串轉(zhuǎn)成json對(duì)象的三種方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!