JSON.parse()

JSON µÄ³£¹æÓÃ;ÊÇͬ web ·þÎñÆ÷½øÐÐÊý¾Ý´«Êä¡£

ÔÚ´Ó web ·þÎñÆ÷½ÓÊÕÊý¾Ýʱ£¬Êý¾ÝÓÀÔ¶ÊÇ×Ö·û´®¡£

ͨ¹ý JSON.parse() ½âÎöÊý¾Ý£¬ÕâЩÊý¾Ý»á³ÉΪ JavaScript ¶ÔÏó¡£

ʵÀý ¨C ½âÎö 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 ¸ñʽÊéд£¬·ñÔò»á³öÏÖÓï·¨´íÎó¡£

ÇëÔÚÄúµÄÒ³ÃæÖÐʹÓà JavaScript ¶ÔÏó£º

ʵÀý

<p id="demo"></p> 

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

Ç××ÔÊÔÒ»ÊÔ

À´×Ô·þÎñÆ÷µÄ JSON

ÄúÄܹ»Í¨¹ýʹÓà AJAX ÇëÇó´Ó·þÎñÆ÷ÇëÇó JSON¡£

Ö»Òª·þÎñÆ÷µÄÏìÓ¦ÊÇÓà JSON ¸ñʽ±àдµÄ£¬Äã¿ÉÒÔ½«×Ö·û´®½âÎö³É JavaScript ¶ÔÏó¡£

ʵÀý

ÇëʹÓà XMLHttpRequest ´Ó·þÎñÆ÷»ñÈ¡Êý¾Ý£º

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();

Ç××ÔÊÔÒ»ÊÔ

²é¿´ json_demo.txt

×÷Ϊ JSON µÄÊý×é

ÔÚ¶ÔÑÜÉú×ÔÊý×éµÄ JSON ʹÓà JSON.parse() ºó£¬´Ë·½·¨½«·µ»Ø JavaScript Êý×飬¶ø²»ÊÇ JavaScript ¶ÔÏó¡£

ʵÀý

´Ó·þÎñÆ÷·µ»ØµÄ JSON ÊÇÊý×飺

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();

Ç××ÔÊÔÒ»ÊÔ

²é¿´ json_demo_array.txt

ÀýÍâ

½âÎöÈÕÆÚ

JSON Öв»ÔÊÐíÈÕÆÚ¶ÔÏó¡£

Èç¹ûÄúÐèÒª°üº¬ÈÕÆÚ£¬ÇëдΪ×Ö·û´®¡£

Ö®ºóÄú¿ÉÒÔ½«Æäת»»»ØÈÕÆÚ¶ÔÏó£º

ʵÀý

°Ñ×Ö·û´®×ª»»ÎªÈÕÆÚ£º

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;

Ç××ÔÊÔÒ»ÊÔ

»òÕßÄú¿ÉÒÔÒÑʹÓà JSON.parse() º¯ÊýµÄµÚ¶þ¸ö²ÎÊý£¬±»³ÆÎª reviver¡£

Õâ¸ö reviver ²ÎÊýÊǺ¯Êý£¬ÔÚ·µ»ØÖµÖ®Ç°£¬Ëü»á¼ì²éÿ¸öÊôÐÔ¡£

ʵÀý

½«×Ö·û´®×ª»»ÎªÈÕÆÚ£¬Ê¹Óà reviver º¯Êý£º

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;

Ç××ÔÊÔÒ»ÊÔ

½âÎöº¯Êý

JSON Öв»ÔÊÐíº¯Êý¡£

Èç¹ûÄúÐèÒª°üº¬º¯Êý£¬Çë°ÑËüд×÷×Ö·û´®¡£

ÉÔºóÄú¿ÉÒÔ°ÑËüת»»»Øº¯Êý£º

ʵÀý

°Ñ×Ö·û´®×ª»»Îªº¯Êý£º

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();

Ç××ÔÊÔÒ»ÊÔ

ÄúÓ¦¸Ã±ÜÃâÔÚ JSON ÖÐʹÓú¯Êý£¬º¯Êý»á¶ªÊ§ËüÃǵÄ×÷ÓÃÓò£¬¶øÇÒÄú»¹ÐèҪʹÓà eval() °ÑËüÃÇת»»»Øº¯Êý¡£

ä¯ÀÀÆ÷Ö§³Ö

ËùÓÐÖ÷Á÷ä¯ÀÀÆ÷ÒÔ¼°×îÐ嵀 ECMAScript (JavaScript) ±ê×¼¾ù°üº¬ JSON.parse() º¯Êý£º

ϱíÖеÄÊý×ÖÖ¸¶¨ÁËÍêȫ֧³Ö JSON.parse() º¯ÊýµÄÊ׸öä¯ÀÀÆ÷°æ±¾£º

Yes 8.0 3.5 4.0 10.0

¶ÔÓÚ¸üÀϵÄä¯ÀÀÆ÷£¬ÒÔϵØÖ·ÖÐµÄ JavaScript ¿âÊÇ¿ÉÓõģº

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

VUE