JSON.parse()
- 上一页 JSON Data Types
- 下一页 JSON 字符串化
JSON 的常规用途是同 web 服务器进行数据传输。
Kama ukurasa wa kuzitoa data wa web, data zaidi ya kawaida ni rangi ya jina la jirani:
Kwa sababu: JSON.parse()
Kupima data, data hizi inatoa msingi wa JavaScript wa kina:
Mfano – Kupima JSON
Tafuta tu kwamba tunatoa uigizo huu kutoka kwenye mshahara wa kuzitoa data wa web:
'{ "name":"Bill Gates", "age":62, "city":"Seattle"}'
Tumia msaada wa JavaScript: JSON.parse()
Tumia msaada wa JavaScript kubadilisha matukio:
var obj = JSON.parse('{ "name":"Bill Gates", "age":62, "city":"Seattle"}');
Hakikisha kwamba uandikie uigizo huu katika muundo wa JSON, inakosa kwa sababu ya kufikia kosa maadili:
Tumia msingi wa JavaScript kwenye ukurasa wako:
实例
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.name + ", " + obj.age; </script>
JSON ya mshahara:
Unaweza kutumia AJAX kumwambia mshahara wa kuzitoa JSON:
Inafikia kwa sababu matokeo ya mshahara inaandikwa katika muundo wa JSON, unaweza kupima rangi ya jina la jirani kama msingi wa JavaScript wa kina:
实例
Tumia XMLHttpRequest kuwasiliana na mshahara wa kuzitoa data:
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();
Kama msingi wa jina la jirani wa JSON:
Kwa kutumia JSON ambao una jina kama jirani kutoka kwenye msingi wa jina la jirani: JSON.parse()
Baada ya, mtu huu wa kuhusiana na msingi hurejea msingi wa JavaScript wa jina la jirani, haliwezi kurejea msingi wa JavaScript wa kina:
实例
JSON ya yana kuitoka kwenye mshahara ni msingi:
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 中不允许日期对象。
如果您需要包含日期,请写为字符串。
之后您可以将其转换回日期对象:
实例
把字符串转换为日期:
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 库是可用的:
- 上一页 JSON Data Types
- 下一页 JSON 字符串化