JSON之——与Javascript的情节

来源:互联网 发布:罗氏诊断待遇 知乎 编辑:程序博客网 时间:2024/04/29 12:52

        大概半年前,在做“善良公社”项目时,就听组里人在谈论JSON,但自己一直没研究及使用过,前几天看“王兴魁——AJAX”视频时,才算是正式学习了一下,也跟随着完成了个小demo,只不过王兴魁里是以Java为后台语言讲解的。


一、规则简介
        JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
        所以解析JSON对象的话JS非常简单!!示例:
function showJSON() {       var user =        {            "username":"lianhai",           "age":26,           "info": { "tel": "123456", "cellphone": "98765"},           "address":               [                   {"city":"langfang","postcode":"222333"},                   {"city":"cangzhou","postcode":"555666"}               ]       }              alert(user.username);       alert(user.age);       alert(user.info.cellphone);       alert(user.address[0].city);       alert(user.address[0].postcode);   }   

二、使用方法

        那我想将Javascript里面的一些对象比如数组、函数、类转成JSON对象怎么办呢?

        可以使用第三方的一个JS包,JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。

        那如果我想将一个字符串的东西转成JS里面的JSON对象又怎么办呢?
        答复:eval()
function myEval() {       var str = '{ "name": "Violet", "occupation": "character" }';       var obj = eval('(' + str + ')');       alert(obj.toJSONString());   }   

        ——这个很有用的。AJAX里面接收到的数据一般是字符串然后我可以将其转换成json对象。这样就可以直接使用了!
        还有另外一种办法:使用parseJSON()方法!效果一样,一段示例:
        java 代码
response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");  
        再在页面中写一个ajax的请求
        js 代码
function sendRequest() {       var url = "/MyWebApp/JSONTest1";       var mailAjax = new Ajax.Request(           url,           {               method: 'get',               onComplete: jsonResponse           }       );   }     function jsonResponse(originalRequest) {       alert(originalRequest.responseText);       var myobj = originalRequest.responseText.parseJSON(); //转成JSON对象之后再使用      alert(myobj.name);   }   



        这就是对JSON的一个简单介绍。当然,提及“JSON”,就不得不说与“XML”的区别,下篇博客将展开介绍,敬请期待!

0 0
原创粉丝点击