技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

詳解JSON.stringify()與JSON.parse()轉(zhuǎn)換JSON對象和字符串

作者:admin    時間:2022-3-30 16:49:42    瀏覽:

本節(jié)將介紹兩種對 JSON 進行字符串化和解析的方法。能夠?qū)?JSON 從對象轉(zhuǎn)換為字符串,反之亦然,這對于傳輸和存儲數(shù)據(jù)很有用。

這就是本文要介紹的JSON.stringify()JSON.parse()方法。

詳解JSON.stringify()與JSON.parse()轉(zhuǎn)換JSON對象和字符串 

在文章開始之前,如果你需要從 .JSON 文件讀取數(shù)據(jù),那么可以參考此文:

JSON.stringify()

JSON.stringify()方法將一個 JavaScript 對象或值轉(zhuǎn)換為 JSON 字符串。

字符串對于通過以輕量級方式存儲或傳遞信息將數(shù)據(jù)從客戶端傳輸?shù)椒?wù)器很有用。例如,你可以在客戶端收集用戶的設(shè)置,然后將它們發(fā)送到服務(wù)器。稍后,你可以使用JSON.parse()方法讀取信息并根據(jù)需要使用數(shù)據(jù)。

我們將一個JSON 對象分配給變量obj,然后通過把obj傳給JSON.stringify()函數(shù),并使用該函數(shù)轉(zhuǎn)換它,我們可以將此字符串分配給變量s

var obj = {"first_name" : "Sammy", "last_name" : "Shark", "location" : "Ocean"}

var s = JSON.stringify(obj)

s的值為:

'{"first_name" : "Sammy", "last_name" : "Shark", "location" : "Ocean"}'

現(xiàn)在,如果我們使用s,我們將把 JSON 作為字符串而不是對象。

我們再看看下面幾個例子。

console.log(JSON.stringify({ x: 5, y: 6 }))
console.log(JSON.stringify([new Number(3), new String('false'), new Boolean(false)]));
console.log(JSON.stringify({ x: [10, undefined, function(){}, Symbol('')] }));
console.log(JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)));

Output
> '{"x":5,"y":6}'
> '[3,"false",false]'
> '{"x":[10,null,null,null]}'
> '"2006-01-02T07:04:05.000Z"'

從這些示例看到,把對象轉(zhuǎn)為字符串時,某些值會發(fā)生變化,如“undefined”變成了null,空字符也變成了null,此外,空函數(shù)也會變成null。這是我們需要注意的地方。

JSON.stringify()函數(shù)允許我們將對象轉(zhuǎn)換為字符串。相反,我們將使用JSON.parse()函數(shù)。

JSON.parse()

字符串對于傳輸很有用,但如果你希望能夠?qū)⑺鼈冝D(zhuǎn)換回客戶端和/或服務(wù)器端的 JSON 對象,我們可以使用JSON.parse()函數(shù)來做到這一點。

要轉(zhuǎn)換上面JSON.stringify()部分中的示例,我們會將字符串s傳遞給函數(shù),并將其分配給一個新變量:

var o = JSON.parse(s)

然后,我們將使用與obj對象相同的對象o。

為了更深入地了解,讓我們看一看一個 HTML 文件上下文中JSON.parse()的示例:

<!DOCTYPE html>
<html>
<body>

<p id="user"></p>

<script>
var s = '{"first_name" : "Sammy", "last_name" : "Shark", "location" : "Ocean"}';

var obj = JSON.parse(s);

document.getElementById("user").innerHTML =
"Name: " + obj.first_name + " " + obj.last_name + "<br>" +
"Location: " + obj.location;
</script>

</body>
</html>

Output
Name: Sammy Shark
Location: Ocean

在 HTML 文件的上下文中,我們可以看到 JSON 字符串s被轉(zhuǎn)換為對象obj,而JSON.parse()是解析 JSON 字符串并將其轉(zhuǎn)換為對象的安全函數(shù)。

總結(jié)

JSON 是一種在 JavaScript 中使用的自然格式,本文詳細解釋了JSON.stringify()JSON.parse()如何操作JSON對象和字符串。

您可能對以下文章也感興趣

標(biāo)簽: JSON  JSON.stringify  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */