JS把字符串轉(zhuǎn)成json對象的三種方法示例詳解
js 把字符串轉(zhuǎn)成json對象的三種方法
不管字符串是否含有轉(zhuǎn)義字符,都能轉(zhuǎn)換成 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);
}使用 這種方式限制稍微多一些,需嚴(yán)格遵守JSON規(guī)范,如屬性都需用引號引起來,如下
var str = '{name:"jack"}';
var obj = JSON.parse(str); // --> parse errorname沒有用引號引起來,使用JSON.parse所有瀏覽器中均拋異常,解析失敗。
如果字符串是 undefined 或者 '',使用上面三種方式都會報錯,所以需要先特殊判斷一下字符串是否是 undefined 或者空字符串,如果不是則可以使用上面的三種方式來轉(zhuǎn)換,一般都是使用第一中方法,最簡單。
轉(zhuǎn)自:js將字符串轉(zhuǎn)換成json的三種方式
javascript 把對象轉(zhuǎn)換成 json 字符串
JSON.stringify
JSON.stringify 方法將某個對象轉(zhuǎn)換成 JSON 字符串形式
const userInfo= {
name: 'zs',
age: 20
}
console.log(JSON.stringify(userInfo));
// {"name":"zs","age":20}JSON.stringify 語法
語法: 可以有三個參數(shù),第一個是傳入要序列化的值,第二個為函數(shù)或者數(shù)組,第三個是文本添加縮進(jìn)、空格和換行符
JSON.stringify(value, replacer, space)
value:第一個參數(shù),將要序列后成 JSON 字符串的值。
replacer:【可選】第二個參數(shù)
(1) 如果該參數(shù)是一個函數(shù),則在序列化過程中,被序列化的值的每個屬性都會經(jīng)過該函數(shù)的轉(zhuǎn)換和處理;
(2) 如果參數(shù)是一個數(shù)組,則僅轉(zhuǎn)換該數(shù)組中具有鍵值的成員。成員的轉(zhuǎn)換順序與鍵在數(shù)組中的順序一樣。
(3) 如果該參數(shù)為未提供或者null ,則對象所有的屬性都會被序列化。
space:【可選】第三個參數(shù),美化文本格式,文本添加縮進(jìn)、空格和換行符,
(1) 如果 該參數(shù) 是一個數(shù)字,則返回值文本在每個級別縮進(jìn)指定數(shù)目的空格
(2) 該參數(shù)最大值為10,如果 該參數(shù)大于 10,則文本縮進(jìn) 10 個空格。
(3)該參數(shù)也可以使用非數(shù)字,如:\t。最大值為10
最多使用方式
JSON.stringify(eval(stu, null, 2)
如果想把包含轉(zhuǎn)義字符的字符串轉(zhuǎn)成 json 字符串
先試用 eval 把字符串轉(zhuǎn)成 json 對象,然后使用 JSON.stringify 把 json 對象轉(zhuǎn)成 json 字符串
JSON.stringify(eval(`(${stu})`), null, 2)如果還需要特別判斷一下空字符串,加個三目運(yùn)算符就行
stu ? JSON.stringify(eval(`(${stu})`), null, 2) : ''參考資料:
到此這篇關(guān)于js 把字符串轉(zhuǎn)成json對象的三種方法的文章就介紹到這了,更多相關(guān)js 字符串轉(zhuǎn)成json對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IE11下CKEditor在Bootstrap Modal中下拉問題的解決
這篇文章主要介紹了IE11下CKEditor在Bootstrap Modal中下拉問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09
jstree中的checkbox默認(rèn)選中和隱藏示例代碼
這篇文章主要介紹了jstree的checkbox默認(rèn)選中和隱藏,需要的朋友可以參考下2019-12-12
JavaScript函數(shù)apply()和call()用法與異同分析
這篇文章主要介紹了JavaScript函數(shù)apply()和call()用法與異同,結(jié)合實例形式分析了apply()和call()的功能、區(qū)別、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下2018-08-08
使用do...while的方法輸入一個月中所有的周日(實例代碼)
下面小編就為大家?guī)硪黄褂胐o...while的方法輸入一個月中所有的周日(實例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
JS highcharts動態(tài)柱狀圖原理及實現(xiàn)
這篇文章主要介紹了JS highcharts動態(tài)柱狀圖原理及實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
electron-builder 的基本使用及electron打包步驟
electron-builder 作為一個用于 Electron 應(yīng)用程序打包的工具,需要下載并使用 Electron 運(yùn)行時來創(chuàng)建可執(zhí)行文件,這篇文章主要介紹了electron-builder 的基本使用,需要的朋友可以參考下2023-12-12

