2. json和javaScript对象的相互转换

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

 

1. json转javaScript对象

 

    var txt = '{ "employees" : [' +  
    '{ "firstName":"John" , "lastName":"Doe" },' +  
    '{ "firstName":"Anna" , "lastName":"Smith" },' +  
    '{ "firstName":"Peter" , "lastName":"Jones" } ]}';  
      
    var obj = eval ("(" + txt + ")");  
      
    console.log(obj.employees[1].firstName);  

    使用eval()函数时,必须为传入的JSON数据参数添加括号'()',否则会报语法错误。但eval()的问题在于,除了可以解析JSON数据,也可 以用于执行JavaScript脚本片段,这就会带来潜在的安全问题。

 

 

 

    JSON提供了专门的JSON Parser来实现只用于解析JSON数据,不会执行scripts脚本,而且速度更快。如下:

obj = JSON.parse(txt);

 

    在现在的浏览器中,如IE8, Firefox3.5, Chrome等以上版本,都提供了原生JSON解析器的支持,而且也是ECMAScript (JavaScript)的最新标准。因此,JSON Parser可以在JavaScript代码中是直接调用。

 

 

 

2. javaScript对象转json

var txt = JSON.stringify(obj); 

    使用JSON.strigify()函数,将Javascript对象转换为JSON文本数据。

 

    示例:

    <!DOCTYPE html>  
    <html>  
    <body>  
    <h2>Create Object from JSON String</h2>  
    <p>  
    First Name: <span id="fname"></span><br>   
    Last Name: <span id="lname"></span><br>   
    </p>   
    <script>  
    var txt = '{"employees":[' +  
    '{"firstName":"John","lastName":"Doe" },' +  
    '{"firstName":"Anna","lastName":"Smith" },' +  
    '{"firstName":"Peter","lastName":"Jones" }]}';  
      
    obj = JSON.parse(txt);  
      
    document.getElementById("fname").innerHTML=obj.employees[2].firstName   
    document.getElementById("lname").innerHTML=obj.employees[2].lastName   
      
    alert("JSON Data: \n" + JSON.stringify(obj));  
    </script>  
    </body>  
    </html>  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值