欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSON的parse()方法介绍

程序员文章站 2023-09-09 10:21:47
parse()方法的介绍: 在接收服务器数据时一般是字符串。 我们可以使用 json.parse() 方法将数据转换为 javascript 对象。 语法...

parse()方法的介绍:

在接收服务器数据时一般是字符串。

我们可以使用 json.parse() 方法将数据转换为 javascript 对象。

语法

json.parse(text[, reviver])

参数说明:

  • text:必需, 一个有效的 json 字符串。
  • reviver: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。

下面我们来看一个实例:

<p id="demo"></p>
<script>
var obj = json.parse('{ "name":jb51", "alexa":10000, "site":www.jb51.net }');
document.getelementbyid("demo").innerhtml = obj.name + ":" + obj.site;
</script>

首先通过parse()方法将json数据转换为javascript对象,

解析完成后,我们就可以在网页上使用json数据了

从服务端接收 json 数据(数组json数据)

我们可以使用 ajax 从服务器请求 json 数据,并解析为 javascript 对象。

eg:
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", "/try/ajax/json_demo.txt", true); xmlhttp.send();

json_demo.txt服务端数据需要自个编写。

json中有个异常解析数据

json 不能存储 date 对象。如果你需要存储 date 对象,需要将其转换为字符串。之后再将字符串转换为 date 对象。

<p id="demo"></p>
<script>      //将字符串转换为data对象
var text = '{ "name":"csdn", "initdate":"2018-12-14", "site":www.jb51.net}';
var obj = json.parse(text);
obj.initdate = new date(obj.initdate);
document.getelementbyid("demo").innerhtml = obj.name + "创建日期: " + obj.initdate;
</script>

这时我们可以启用json的第二个参数:

<p id="demo"></p>
<script>
var text = '{ "name":"csdn", "initdate":"2018-12-14", "site":"www.jb51.net"}';
var obj = json.parse(text, function (key, value) {
  if (key == "initdate") {
    return new date(value);
  } else {
    return value;
}});
document.getelementbyid("demo").innerhtml = obj.name + "创建日期:" + obj.initdate;

解析函数:

json 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

var text = '{ "name":"jb51", "alexa":"function () {
return 10000;}",
"site":"www.jb51.net"}';
var obj = json.parse(text);
obj.alexa = eval("(" + obj.alexa + ")");      注意:最好不要在json中使用函数
document.getelementbyid("demo").innerhtml = obj.name + " alexa 排名:" + obj.alexa();

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接