JavaScript 中处理 JSON 数据

Json全名:JavaScriprt  Objet Notation  是一种简单的数据格式比XML更轻巧..Json是JavaScript 的原生格式...所以在JavaScript中处理Json数据不需要任何特殊的API及JAR...

Json规则:对象是一个无序的 " ' 名称/值 ' 对  "  集合,一个对象以 " {"  ( 左括号)开始"}" (右括号) 结束。每个 " 名称 " 后跟一个 " : "( 冒号) ;   "  '名称/值 ' 对  "  之间使用  "  ,  "(逗号)分隔。

Examples:
       1.  function showJSON() {   
                 var user =   {   
                          "username":"qinrw",   
                          "age":24,   
                          "info": { "tel": "188029xxxxx", "cellphone" :  "98765"},   
                          "address":    [   
                                                      {"city":"陕西","postcode" : "0823"},   
                                                       {"city":"北京","postcode" :" 0823"}   
                                                  ]   
                                       }   
                    alert(user.username);   
                    alert(user.age);   
                    alert(user.info.cellphone);   
                    alert(user.address[0].city);   
                    alert(user.address[0].postcode);                  
                     }  

           2.JSON来简单的修改数据

                function showJSON() {    
                     var user =   {                   
                                "username":"qinrw",    
                               "age":24,    
                               "info": { "tel": "123456", "cellphone": "98765"},    
                               "address":   [                              
                                          {"city":"陕西","postcode":"0823"},     
                                          {"city":"北京","postcode":"0823"}    
                                        ]    
                                }   

                      alert(user.username);     
                      alert(user.age);    
                      alert(user.info.cellphone);    
                      alert(user.address[0].city);    
                      alert(user.address[0].postcode);   

                      user.username = "imqinrw";    
                      alert(user.username);        
                   }  

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

                 function showCar() {    
                      var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");    
                      alert(carr.toJSONString());    
                        }   

                 function Car(make, model, year, color)   {    
                     this.make   =   make;    
                     this.model   =   model;    
                     this.year   =   year;    
                     this.color   =   color;    
                         }

             使用eval来转换JSON字符到Object

                  function myEval() {    
                        var str = '{ "name": "Violet", "occupation": "character" }';    
                        var obj = eval('(' + str + ')');    
                        alert(obj.toJSONString());                    
                       }

            或者使用parseJSON()方法

                  function myEval() {    
                        var str = '{ "name": "Violet", "occupation": "character" }';    
                        var obj = str.parseJSON();    
                        alert(obj.toJSONString());     
                  }

             JSON还提供了java的jar包 http://www.json.org/java/index.html API也很简单,下面举个例子

              *在javascript中填加请求参数

               js 代码

               function sendRequest() {    
                   var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");    
                   var pars = "car=" + carr.toJSONString();   

                   var url = "/MyWebApp/JSONTest1";    
                   var mailAjax = new Ajax.Request(    
                          url,    
                           {     
                               method: 'get',    
                               parameters: pars,       
                                 onComplete: jsonResponse     
                           }     
                      );    
                  }   
            使用JSON请求字符串就可以简单的生成JSONObject并进行解析,修改servlet添加JSON的处理(要使用json.jar)

           java 代码

          private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {    
            String s3 = request.getParameter("car");     
            try {    
               JSONObject jsonObj = new JSONObject(s3);    
               System.out.println(jsonObj.getString("model"));     
               System.out.println(jsonObj.getInt("year"));     
                   } catch (JSONException e) {      
                         e.printStackTrace();       
                      }     
                response.getWriter().print("{ /"name/": /"Violet/", /"occupation/": /"character/" }");    
            }  

         同样可以使用JSONObject生成JSON字符串,修改servlet

          java 代码

          private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {    
             String s3 = request.getParameter("car");     
             try {    
                JSONObject jsonObj = new JSONObject(s3);    
                System.out.println(jsonObj.getString("model"));     
                System.out.println(jsonObj.getInt("year"));        
                  } catch (JSONException e) {    
                         e.printStackTrace();    
                 }     

               JSONObject resultJSON = new JSONObject();    
                   try {    
                        resultJSON.append("name", "Violet")   
                       .append("occupation", "developer")   
                       .append("age", new Integer(22));    
                        System.out.println(resultJSON.toString());     
                       } catch (JSONException e) {    
                    e.printStackTrace();     
                    }     
                      response.getWriter().print(resultJSON.toString());     
                   }   
             js 代码

              function jsonResponse(originalRequest) {    
                     alert(originalRequest.responseText);    
                     var myobj = originalRequest.responseText.evalJSON(true);    
                     alert(myobj.name);    
                     alert(myobj.age);     
                } 
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值