`
小皮球
  • 浏览: 33916 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论
阅读更多
原文来自: http://wangyu.iteye.com/blog/311274

JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html
举个简单的例子:
Js代码

   1. function showJSON() {     
   2.     var user =      
   3.     {      
   4.         "username":"andy",     
   5.         "age":20,     
   6.         "info": { "tel": "123456", "cellphone": "98765"},     
   7.         "address":     
   8.             [     
   9.                 {"city":"beijing","postcode":"222333"},     
  10.                 {"city":"newyork","postcode":"555666"}     
  11.             ]     
  12.     }     
  13.          
  14.     alert(user.username);     
  15.     alert(user.age);     
  16.     alert(user.info.cellphone);     
  17.     alert(user.address[0].city);     
  18.     alert(user.address[0].postcode);     
  19. }     

function showJSON() {   
    var user =    
    {    
        "username":"andy",   
        "age":20,   
        "info": { "tel": "123456", "cellphone": "98765"},   
        "address":   
            [   
                {"city":"beijing","postcode":"222333"},   
                {"city":"newyork","postcode":"555666"}   
            ]   
    }   
       
    alert(user.username);   
    alert(user.age);   
    alert(user.info.cellphone);   
    alert(user.address[0].city);   
    alert(user.address[0].postcode);   
}   


这表示一个user对象,拥有username, age, info, address 等属性。
同样也可以用JSON来简单的修改数据,修改上面的例子
Js代码

   1. function showJSON() {     
   2.     var user =      
   3.     {      
   4.         "username":"andy",     
   5.         "age":20,     
   6.         "info": { "tel": "123456", "cellphone": "98765"},     
   7.         "address":     
   8.             [     
   9.                 {"city":"beijing","postcode":"222333"},     
  10.                 {"city":"newyork","postcode":"555666"}     
  11.             ]     
  12.     }     
  13.          
  14.     alert(user.username);     
  15.     alert(user.age);     
  16.     alert(user.info.cellphone);     
  17.     alert(user.address[0].city);     
  18.     alert(user.address[0].postcode);     
  19.          
  20.     user.username = "Tom";     
  21.     alert(user.username);     
  22. }     

function showJSON() {   
    var user =    
    {    
        "username":"andy",   
        "age":20,   
        "info": { "tel": "123456", "cellphone": "98765"},   
        "address":   
            [   
                {"city":"beijing","postcode":"222333"},   
                {"city":"newyork","postcode":"555666"}   
            ]   
    }   
       
    alert(user.username);   
    alert(user.age);   
    alert(user.info.cellphone);   
    alert(user.address[0].city);   
    alert(user.address[0].postcode);   
       
    user.username = "Tom";   
    alert(user.username);   
}   


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

   1. function showCar() {     
   2.     var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");     
   3.     alert(carr.toJSONString());     
   4. }     
   5.     
   6. function Car(make, model, year, color)       {     
   7.      this.make  =  make;     
   8.      this.model  =  model;     
   9.      this.year  =  year;     
  10.      this.color  =  color;     
  11. }     

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
Js代码

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

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


或者使用parseJSON()方法
Js代码

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

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


下面使用prototype写一个JSON的ajax例子。
先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话
Java 代码

   1. response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");    

response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");  


再在页面中写一个ajax的请求
Js代码

   1. function sendRequest() {     
   2.     var url = "/MyWebApp/JSONTest1";     
   3.     var mailAjax = new Ajax.Request(     
   4.         url,     
   5.         {     
   6.             method: 'get',     
   7.             onComplete: jsonResponse     
   8.         }     
   9.     );     
  10. }     
  11.     
  12. function jsonResponse(originalRequest) {     
  13.     alert(originalRequest.responseText);     
  14.     var myobj = originalRequest.responseText.parseJSON();     
  15.     alert(myobj.name);     
  16. }     

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();   
    alert(myobj.name);   
}   


prototype-1.5.1.js中提供了JSON的方法,String.evalJSON(), 可以不使用json.js, 修改上面的方法
Js代码

   1. function jsonResponse(originalRequest) {     
   2.     alert(originalRequest.responseText);     
   3.     var myobj = originalRequest.responseText.evalJSON(true);     
   4.     alert(myobj.name);     
   5. }     

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


JSON还提供了java的jar包 http://www.json.org/java/index.html API也很简单,下面举个例子
在javascript中填加请求参数
Js代码

   1. function sendRequest() {     
   2.     var carr = new Car("Dodge", "Coronet R/T", 1968, "yellow");     
   3.     var pars = "car=" + carr.toJSONString();     
   4.     
   5.     var url = "/MyWebApp/JSONTest1";     
   6.     var mailAjax = new Ajax.Request(     
   7.         url,     
   8.         {     
   9.             method: 'get',     
  10.             parameters: pars,     
  11.             onComplete: jsonResponse     
  12.         }     
  13.     );     
  14. }     

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 代码

   1. private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {     
   2.         String s3 = request.getParameter("car");     
   3.         try {     
   4.             JSONObject jsonObj = new JSONObject(s3);     
   5.             System.out.println(jsonObj.getString("model"));     
   6.             System.out.println(jsonObj.getInt("year"));     
   7.         } catch (JSONException e) {     
   8.             e.printStackTrace();     
   9.         }     
  10.         response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");     
  11.     }     

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 代码

   1. private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {     
   2.         String s3 = request.getParameter("car");     
   3.         try {     
   4.             JSONObject jsonObj = new JSONObject(s3);     
   5.             System.out.println(jsonObj.getString("model"));     
   6.             System.out.println(jsonObj.getInt("year"));     
   7.         } catch (JSONException e) {     
   8.             e.printStackTrace();     
   9.         }     
  10.              
  11.         JSONObject resultJSON = new JSONObject();     
  12.         try {     
  13.             resultJSON.append("name", "Violet")     
  14.                       .append("occupation", "developer")     
  15.                       .append("age", new Integer(22));     
  16.             System.out.println(resultJSON.toString());     
  17.         } catch (JSONException e) {     
  18.             e.printStackTrace();     
  19.         }     
  20. } 
分享到:
评论

相关推荐

    JavaScript JSON Cookbook mobi

    JavaScript JSON Cookbook 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    JavaScript Json Create、Select、Delete、Update

    JavaScript JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在Web开发中,JSON常用于服务器与客户端之间的数据交互,...

    javascript对象转换成json

    在JavaScript中,对象转换成JSON(JavaScript Object Notation)是一种常见的数据交换格式,它轻量级、易读、易写,被广泛应用于Web应用程序之间传递数据。JSON格式是基于JavaScript的一个子集,但它并不是...

    JavaScript JSON使用原理及注意事项

    JavaScript JSON 使用原理与注意事项 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,它的设计灵感来源于JavaScript语法,但作为一个独立的标准,被广泛应用于各种编程语言中,包括JavaScript。...

    JavaScript JSON Cookbook epub

    JavaScript JSON Cookbook 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    javascript json框架

    JavaScript JSON框架是一个用于处理JSON(JavaScript Object Notation)数据的工具集,它使得在JavaScript中序列化和反序列化数据变得更加便捷。JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于...

    Javascript Json包

    javascript 解析json必备利器 JSON.parse(str) JSON.stringify(jsonObj) 等等经典方法扩展。

    javascript json数据解析工具json2.js

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言,包括JavaScript,的结构。JSON2.js是由Douglas Crockford开发的一个JavaScript库,...

    Javascript JSON

    JavaScript中的JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,同时也易于人阅读和编写,并且方便机器解析和生成。JSON格式基于JavaScript的一个子集,它以键值对...

    javascript处理json字符串和json对象的类(含示例)

    在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。处理JSON数据是Web开发中的常见任务,尤其是在与...

    JavaScript JSON Cookbook(PACKT,2015)

    JSON (JavaScript Object Notation) is a lightweight text-based data interchange format used to create objects to transfer data over the Internet. It's widely used today by common web applications, as ...

    javascript json对象数组排序

    javascript中实现对象数组的排序功能 只要数组中的对象存在多个属性,即可传入sql语句排序形式的参数,加以排序,如传入'col1 desc,col2 asc' 就可以实现对数组中对象通过col1倒序排列,如果col1值相同,则通过col2排序,...

    json格式校验前端插件(javascript)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端数据传输。在前端开发中,正确解析和校验JSON格式至关重要,因为任何格式错误都可能导致程序崩溃或逻辑错误。本文将详细介绍一个...

    json-diff:纯Javascript JSON差异库

    Json diff库用于比较两个Json的纯Javascript库。 随着输出返回定义良好的结构,因此您可以随时使用它来以任何您喜欢的方式呈现JSON差异。如何进行单元测试超级简单! 只需在浏览器中打开test/SpecRunner.html.jst...

    纯javascript实现json与对象的互相转换项目

    本项目专注于纯JavaScript实现JSON(JavaScript Object Notation)与JavaScript对象之间的互相转换,这对于数据的存储、传输以及序列化至关重要。JSON作为一种轻量级的数据交换格式,因其易读易写、机器可读性高而被...

    jsonrpc.js:JavaScript JSON RPC 客户端

    ##jsonrpc.js JSON RPC 客户端在 javascript 中的实现 ##用法 创建客户端对象 var client = new JSONRPC ( { host : "localhost:3001" } ) ; 其他可用选项 host : rpc host transport: used transport , ...

    原生JavaScript json导出excel 可自定义表头

    使用原生JavaScript把json数据转table dom,再利用table转excel导出

    JavaScript JSON

    JavaScript JSON JSON 是用于存储和传输数据的格式。 JSON 通常用于服务端向网页传递数据 。 什么是 JSON? JSON 英文全称 JavaScript Object Notation JSON 是一种轻量级的数据交换格式。 JSON是独立的语言 * ...

    深入javascript json QQ网页登陆

    标题“深入javascript json QQ网页登陆”指明了本文的讨论中心,即将JavaScript和JSON技术结合应用于实现类似QQ网页登录界面的技术细节。 描述中提到的“下面是个类似QQ网页登陆的一个对话框(DIV),js+json动态...

Global site tag (gtag.js) - Google Analytics