JSON.parse()

JSON 的常规用途是同 web 服务器进行数据传输。

在从 web 服务器接收数据时,数据永远是字符串。

通过 JSON.parse() 解析数据,这些数据会成为 JavaScript 对象。

实例 – 解析 JSON

请想象一下我们从 web 服务器接收到这段文本:

'{ "name":"Bill Gates", "age":62, "city":"Seattle"}'

请使用 JavaScript 函数 JSON.parse() 把文本转换为 JavaScript 对象:

var obj = JSON.parse('{ "name":"Bill Gates", "age":62, "city":"Seattle"}');

请确保这段文本以 JSON 格式书写,否则会出现语法错误。

ka ɗauka ƙarƙashin ƙaƙara ƙaƙara ƙaƙara ƙaƙara ƙaƙara ƙaƙara ƙaƙara.

Kwarin

<p id="demo"></p> 
<script>
 document.getElementById("demo").innerHTML = obj.name + ", " + obj.age; 
</script>

Try it yourself

JSON ɗin ƙaƙara ƙaƙara

ka ɗauka ƙarƙashin AJAX ƙarƙashin ƙaƙara ƙaƙara daga ƙaƙara ƙaƙara.

kada ƙarƙashin ƙaƙara ƙaƙara ƙaƙara ce, ka ɗauka ƙarƙashin ƙaƙara ƙaƙara ƙaƙara.

Kwarin

ka ɗauka ƙarƙashin XMLHttpRequest daga ƙaƙara ƙaƙara.

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()  {
    if (this.readyState == 4 && this.status == 200) {
        myObj =  JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML  = myObj.name;
    }
};
xmlhttp.open("GET", "json_demo.txt", true);
xmlhttp.send();

Try it yourself

ka ƙaiko json_demo.txt

ɗanin ƙaƙara JSON

ta ɗa ƙarƙashin JSON ƙarƙashin ƙaƙara JSON.parse() bayan haka, ɗanin yau ƙaƙara yau ƙaƙara ƙaƙara ce, kacalai ƙaƙara ƙaƙara.

Kwarin

JSON ɗin ya ƙarƙashin ƙaƙara ƙaƙara ce

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()  {
    if (this.readyState == 4 && this.status == 200) {
        myArr =  JSON.parse(this.responseText);
        document.getElementById("demo").innerHTML  = myArr[0];
    }
};
xmlhttp.open("GET", "json_demo_array.txt", true);
xmlhttp.send();

Try it yourself

kamar json_demo_array.txt

Duba

Fasheci rana

Kuma ayyukan JSON ba a san suwa da rana.

Idan ka ƙaƙƙarfan a kewayi aya ce, kuma yin shi ne littar.

Baɗa ya a yi kuma rana:

Kwarin

Fasheci littar aya ce zuwa rana:

var text =  '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
var obj = JSON.parse(text);
obj.birth = new Date(obj.birth);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

Try it yourself

ko kuma a amfani da JSON.parse() Ayyukan na biyu, wanda ake kira reviver.

tunawa reviver Argan aya ce ayyuka, a fashin raba ayyukan a cikin baya, a cikin baya ita ce a fashin ayyukan.

Kwarin

Fasheci littar aya ce zuwa rana, amfani da reviver aya ce:

var text =  '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}';
var obj = JSON.parse(text, function (key, value) {
    if  (key == "birth") {
        return new Date(value);
    } else {
         return value;
   }});
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

Try it yourself

Fasheci aya ce.

Kuma ayyukan JSON ba a san suwa da aya ce.

Idan ka ƙaƙƙarfan a kewayi aya ce, kuma yin shi ne littar.

Baɗa ya a yi kuma fasheci a fashin:

Kwarin

Fasheci littar aya ce doni:

var text = '{ "name":"Bill Gates", "age":"function () {return 62;}", "city":"Seattle"}';
var obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " +  obj.age();

Try it yourself

You should avoid using functions in JSON, as functions will lose their scope, and you also need to use eval() Convert them back to functions.

Browser support

All mainstream browsers and the latest ECMAScript (JavaScript) standard include JSON.parse() Function:

The numbers in the following table specify full support JSON.parse() The first browser version of the function:

Yes 8.0 3.5 4.0 10.0

For older browsers, the following address contains available JavaScript libraries:

https://github.com/douglascrockford/JSON-js