1. 程式人生 > >JSON物件和字串之間的相互轉換

JSON物件和字串之間的相互轉換

所有現代瀏覽器都支援 JSON 物件,有兩個非常有用的方法來處理 JSON 格式的內容:

JSON.parse(string) :接受一個 JSON 字串並將其轉換成一個 JavaScript 物件。
JSON.stringify(obj) :接受一個 JavaScript 物件並將其轉換為一個 JSON 字串。
比如我有兩個變數,我要將a轉換成字串,將b轉換成JSON物件:

var a={"name":"tom","sex":"男","age":"18"};
var b='{"name":"Mike","sex":"女","age":"18"}';

在Firefox,chrome,opera,safari,ie9,ie8等高階瀏覽器直接可以用JSON物件的stringify()和parse()方法。

JSON.stringify(obj)將JSON轉為字串。

JSON.parse(string)將字串轉為JSON格式;

上面的轉換可以這麼寫:

var a={"name":"tom","sex":"男","age":"18"};
var b='{"name":"Mike","sex":"女","age":"18"}';
var aToStr=JSON.stringify(a);
var bToObj=JSON.parse(b);
console.log(typeof(aToStr));  //string
console.log(typeof(bToObj));//object

這些方法通常用在物件上,但它們也可以在陣列上使用:

const myArr = ['bacon', 'letuce', 'tomatoes'];
const myArrStr = JSON.stringify(myArr);
console.log(myArrStr);
// "["bacon","letuce","tomatoes"]"
console.log(JSON.parse(myArrStr));
// ["bacon","letuce","tomatoes"]

ie8(相容模式),ie7和ie6沒有JSON物件,不過提供了一個json.js,這樣ie8(相容模式),ie7和ie6就可以支援JSON物件以及其stringify()和parse()方法;你可以上

摳摳qun:864305860獲取到這個js,一般現在用json2.js。

ie8(相容模式),ie7和ie6可以使用eval()將字串轉為JSON物件,

var c='{"name":"Mike","sex":"女","age":"18"}';
var cToObj=eval("("+c+")");
console.log(typeof(cToObj));

jQuery中也有將字串轉為JSON格式的方法jQuery.parseJSON( json ),接受一個標準格式的 JSON 字串,並返回解析後的 JavaScript (JSON)物件。當然如果有興趣可以自己封裝一個jQuery擴充套件,jQuery.stringifyJSON(obj)將JSON轉為字串。

JSON.parse() 和 JSON.stringify() 的高階用法,可以將返回值過濾,轉換等

本次給大家推薦一個免費的學習群,裡面概括移動應用網站開發,css,html,webpack,vue node angular以及面試資源等。
對web開發技術感興趣的同學,歡迎加入Q群:864305860,不管你是小白還是大牛我都歡迎,還有大牛整理的一套高效率學習路線和教程與您免費分享,同時每天更新視訊資料。
最後,祝大家早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峰。