JS对JSON数据的操作-解析操作

JS对JSON数据的操作-解析操作


1.1JS解析JSON字符串
1.1.1使用eval()函数解析
    由于JSON语法是JS语法的子集,JS函数eval()可用于将JSON字符串转换为JOSN对象。
解析方式:
    eval()函数使用JS编译器,解析JSON文本生成JS对象。
语法:
    var obj = eval ("(" + txt + ")");
注意:必须把文本包围在括号中,这样才能避免语法错误。
例:
<html>
<head></head>
<body>
<p>
    First Name: <span id="fname"></span><br />
    Last Name: <span id="lname"></span><br />
</p>
<script type="text/javascript">
    var txt = '{"employees":[' +
              '{"firstName":"Bill","lastName":"Gates" },' +
              '{"firstName":"George","lastName":"Bush" },' +
              '{"firstName":"Thomas","lastName":"Carter" }]}';
    var obj = eval ("(" + txt + ")");
    document.getElementById("fname").innerHTML=obj.employees[1].firstName;
    document.getElementById("lname").innerHTML=obj.employees[1].lastName;
</script>
</body>
</html>

1.1.2 使用JSON.parse()方法解析
解析方式:
    JSON.parse()方法使用JSON解析器将JSON字符串转换为JOSN对象。
语法:
    var obj = JSON.parse(txt);
例:
<html>
<head></head>
<body>
<p>
        First Name: <span id="fname"></span><br />
        Last Name: <span id="lname"></span><br />
</p>
<script type="text/javascript">
       var txt = '{"employees":[' +
              '{"firstName":"Bill","lastName":"Gates" },' +
              '{"firstName":"George","lastName":"Bush" },' +
              '{"firstName":"Thomas","lastName":"Carter" }]}';
        var obj = JSON.parse(txt);
        document.getElementById("fname").innerHTML=obj.employees[1].firstName;
        document.getElementById("lname").innerHTML=obj.employees[1].lastName;
</script>
</body>
</html>

1.1.3两种解析方式的比较
    eval()函数使用JS编译器解析,可编译并执行任何JS代码。存在一个潜在的安全问题。
    JSON.parse()函数使用JSON解析器解析,JSON 解析器只能识别JSON文本,而不会编译脚本。使用起来更安全。
    较新的浏览器和最新的ECMAScript(JavaScript)标准中均包含了原生的对JSON的支持。并且JSON解析器的速度更快。
1.2解析JSON对象——JSON.stringify()方法
    JSON.stringify()方法,使用JSON解析器将JSON对象转换为JSON字符串。
语法:
    JSON.stringify(JSON对象);
例:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var obj ={"name":"helicopter",
              "age":23,
               "hobby":{"first":"swimming","second":"singing","third":"dancing"}};
    var jsonStr=JSON.stringify(obj);
    document.write(jsonStr);
</script>
</head>
<body>
</body>
</html>

猜你喜欢

转载自wsj123.iteye.com/blog/2310158
今日推荐