`

JSON数据调用

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

下面使用prototype写一个JSON的ajax例子。
先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话
response.getWriter().print("{ \"name\": \"Violet\", \"occupation\": \"character\" }");   

再在页面中写一个ajax的请求
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, 修改上面的方法
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中填加请求参数
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)
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
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();    
        }    
}
分享到:
评论

相关推荐

    PHP与AJAX返回json数据调用.zip

    PHP与AJAX返回json数据调用.zip

    json调用json调用json调用json调用

    例如,构建脚本可能读取配置文件(如`gradle.properties`)中的API密钥,并使用这些信息来调用外部服务获取或发送JSON数据。同时,Gradle插件也可以处理JSON格式的配置,帮助开发者更方便地管理和操作JSON数据。

    PB调用http、api,PB解析json.zip

    PB调用http、api,PB解析json; PB调用http、api,PB解析json; PB调用http、api,PB解析json; PB调用http、api,PB解析json; PB调用http、api,PB解析json; PB调用http、api,PB解析json; PB调用http、api,PB解析...

    微信小程序如何调用json数据接口并解析

    本文将详细介绍如何在微信小程序中调用JSON数据接口并进行解析。 首先,微信小程序提供了`wx.request`方法用于发起网络请求,这是实现数据接口调用的核心方法。开发者需要在小程序的页面代码中定义该方法,并通过...

    java调用json参数的webservice

    综上所述,通过Java调用带有JSON参数的WebService,涉及到了Java编程语言的使用、JSON数据格式的处理以及WebService通信机制。开发者需要掌握这些技术来实现不同类型的应用程序之间的互操作性和数据交换。

    JS调用Android方法,向Android方法传递json数据

    本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 首先,我们需要了解`Android WebView`。WebView是Android系统提供的一种组件,它能够加载并显示网页内容,就像是...

    VB利用官方api读写JSON数据格式文件简单实例

    在VB(Visual Basic)编程环境中,使用官方API来读写JSON数据格式文件是常见的操作,尤其是在处理网络数据交换或者存储配置信息时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...

    PB调用http apiPB解析json

    这一过程涉及到多个技术点,包括网络通信、API接口调用以及JSON数据处理。 1. **PB调用HTTP API**:PowerBuilder支持通过.NET或OLE Automation等方式调用HTTP接口。这通常涉及创建一个对象,如.NET的HttpClient或...

    C#后台返回json类型数据

    在.NET框架下,可以通过多种方式实现数据的序列化与反序列化,从而支持JSON数据的处理。 #### 一、理解题目背景 根据题目描述:“只需要将`dt`传过来就能够生成json类型数据”。这里的`dt`指的应该是一个`...

    动态调取webservice返回json数据并处理

    这里我们关注的是动态调用WebService并处理返回的JSON数据,然后将这些数据展示在GridView中。这个过程涉及到的技术主要包括:WebService的调用、JSON数据解析以及数据绑定到GridView。 首先,让我们来理解...

    银行及对应的简码json数据

    "银行及对应的简码json数据"这个主题涉及到了数据存储、编码系统以及JSON(JavaScript Object Notation)这种轻量级的数据交换格式。JSON因其易读性、易解析性和平台无关性而被广泛应用于Web服务和应用程序之间的...

    jQuery读取json数据

    关于"jQuery读取json数据"这个主题,我们将会深入探讨如何利用jQuery的Ajax功能来高效地加载和解析JSON格式的数据,以及这样做带来的优势。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于...

    Layui调用json获取表格动态数据代码.zip

    这个压缩包“Layui调用json获取表格动态数据代码.zip”包含了一系列的HTML文件和相关资源,用于演示如何使用Layui来从JSON数据源动态加载表格数据。下面我们将详细探讨这一主题。 首先,Layui的表格组件提供了丰富...

    全球地图echarts json数据

    标题中的“全球地图echarts json数据”指的是使用ECharts库绘制全球地图时所需要的数据格式,通常是JSON(JavaScript Object Notation)文件。ECharts是一个由百度开发的基于JavaScript的数据可视化库,它提供了丰富...

    已经实现了:(含源码)VB利用官方api读写JSON数据格式文件简单实例.zip

    在VB(Visual Basic 6)中,处理JSON数据格式文件是一项常见的任务,特别是在与Web服务交互或存储配置信息时。本实例将详细讲解如何利用官方API实现VB对JSON的读写操作,帮助开发者更好地理解这一过程。 首先,JSON...

    C#使用Http Post方式传递Json数据字符串调用Web Service

    C#中通过直接添加引用的方来调用Web Service的方式不够灵活,故采取手动发送Http请求的方式来调用Web Service。最后选择使用Post方式来调用Web Service

    VB6 处理Json数据源码

    "VB6处理Json数据源码"是一个针对VB6开发者的资源,帮助他们能够解析和操作JSON(JavaScript Object Notation)数据格式,这是现代网络数据交换的标准。 JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    纯pb代码编写的解析json数据,含生成、格式化等

    标题中的“纯pb代码编写的解析json数据,含生成、格式化等”指的是使用PowerBuilder(简称PB)这种编程语言,完全不依赖其他外部库,实现了JSON数据的解析、生成和格式化的功能。PB是一种面向对象的编程工具,主要...

    Revit模型转JSON数据测试数据(JSON数据)

    Revit模型转换为JSON数据是建筑信息模型(BIM)领域中的一个重要操作,它涉及到软件间的交互和数据交换。Revit是一款由Autodesk公司推出的建筑设计、结构工程和MEP(机械、电气、管道)工程的专业软件,它允许用户创建...

Global site tag (gtag.js) - Google Analytics