JSON.parse()
ការប្រើប្រាស់លម្ឡកម្ម JSON ជាទូទៅ គឺដើម្បីបញ្ជូនទិន្នន័យជាមួយសេវអេឡិចត្រូនិចវ័រ ប៊េប
នៅពេលទទួលបានទិន្នន័យពីសេវអេឡិចត្រូនិច ទិន្នន័យគឺជាអត្ថបទទាំងស្រុង
តាម JSON.parse()
ការបញ្ចាក់ទិន្នន័យ ទិន្នន័យទាំងនេះនឹងក្លាយជាវត្ថុ JavaScript
ឧទាហរណ៍ – ការបញ្ចាក់ JSON
សូមស្រមើលអត្ថបទនេះ ដែលពួកយើងបានទទួលពីសេវអេឡិចត្រូនិចវ័រ ប៊េប សេវអេឡិចត្រូនិច
'{ "name":"Bill Gates", "age":62, "city":"Seattle"}'
សូមប្រើមួយនៃមួយក្រុមវិទ្យាសាស្រ្ត JavaScript JSON.parse()
ប្រើអត្ថបទនេះដើម្បីប្រែប្រួលអត្ថបទ ជាវត្ថុ JavaScript ទេ
var obj = JSON.parse('{ "name":"Bill Gates", "age":62, "city":"Seattle"}');
សូមធានាថាអត្ថបទនេះត្រូវបានបញ្ជូនជារូបភាព JSON អ្នកអាចកំពុងមានកំហុងលើភាសាវិទូ
សូមប្រើវត្ថុ JavaScript នៅលើទំព័ររបស់អ្នក:
Mga halimbawa
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.name + ", " + obj.age; </script>
JSON ដែលមកពីសេវអេឡិចត្រូនិច
អ្នកអាចស្វែងរក JSON ពីសេវអេឡិចត្រូនិច ដោយប្រើការស្វែងរក AJAX。
ប្រសិនបើការឆ្លើយតបរបស់សេវអេឡិចត្រូនិច ត្រូវបានបញ្ជូនជារូបភាព JSON អ្នកអាចបញ្ចាក់រយៈពេលជាអត្ថបទ ជាវត្ថុ JavaScript ទេ
Mga halimbawa
សូមប្រើ XMLHttpRequest ដើម្បីទទួលបានទិន្នន័យពីសេវអេឡិចត្រូនិច:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { kung (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
នៅពេលប្រើ JSON ដែលបានកសាងពីអត្ថបទជាបន្តផ្តើម JSON.parse()
បន្ទាប់ពីនេះ ម៉ូដវិល នឹងបញ្ជូនអត្ថបទ JavaScript ជាអត្ថបទជាបន្តផ្តើម មិនមែនជាវត្ថុ JavaScript ទេ
Mga halimbawa
JSON ដែលបានបញ្ជូនពីសេវអេឡិចត្រូនិច គឺជាអត្ថបទជាបន្តផ្តើម
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { kung (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();
Laban
Ibali ang petsa
Hindi pinapayagan ang objek petsa sa JSON.
Kung kailangan mong isama ang petsa, isulat ito bilang string.
Pagkatapos, maaari mong iwanag muli bilang objek petsa:
Mga halimbawa
Iwanag ang string bilang petsa:
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;
o maaari mong gamitin ang JSON.parse()
Ang ikalawang argumento ng function, tinatawag na reviver.
Ito reviver Ang argumento ay function, ito ay susuri ang bawat katangian bago ito ibalik bilang halaga.
Mga halimbawa
Iwanag ang string bilang petsa, gamit ang function na reviver:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}'; var obj = JSON.parse(text, function (key, value) { kung (key == "birth") { return new Date(value); } else { return value; }); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
Ibali ang function
Hindi pinapayagan ang function sa JSON.
Kung kailangan mong isama ang function, isulat ito bilang string.
Mamaya, maaari mong iwanag muli bilang function:
Mga halimbawa
Iginawala ang string bilang function:
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 库是可用的: