`

java json-lib & jQuery & jsonp

 
阅读更多
参考链接:
1、http://hanqunfeng.iteye.com/blog/1866712
2、http://blog.csdn.net/z69183787/article/details/15808921
3、http://www.cnblogs.com/JerryTian/p/4194900.html
4、http://feitianbenyue.iteye.com/blog/2046877
一 程序所需jar文件及POM
<dependency>
		    <groupId>net.sf.json-lib</groupId>
		    <artifactId>json-lib</artifactId>
		    <version>2.4</version>
		</dependency>
		
		<dependency>
		    <groupId>net.sf.ezmorph</groupId>
		    <artifactId>ezmorph</artifactId>
		    <version>1.0.6</version>
		</dependency>


二 后台代码编写
try {  
        response.setContentType("text/plain");  
        response.setHeader("Pragma", "No-cache");  
        response.setHeader("Cache-Control", "no-cache");  
        response.setDateHeader("Expires", 0);  
        Map<String,String> map = new HashMap<String,String>();   
        map.put("result", "content");  
        PrintWriter out = response.getWriter();       
        JSONObject resultJSON = JSONObject.fromObject(map); //根据需要拼装json  
        String jsonpCallback = request.getParameter("jsonpCallback");//客户端请求参数  
        out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式数据  
        out.flush();  
        out.close();  
      } catch (IOException e) {  
       e.printStackTrace();  
      }  

三 JS代码编写
$.ajax({  
        type : "get",  
        async:false,  
        url : "http://app.example.com/base/json.do?sid=1494&busiId=101",  
        dataType : "jsonp",//数据类型为jsonp  
        jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数  
        success : function(data){  
            $("#showcontent").text("Result:"+data.result)  
        },  
        error:function(){  
            alert('fail');  
        }  
    });   

四 相关错误
 java.lang.ClassCastException: JSON keys must be strings

解决如下:
 JsonConfig jsonConfig = new JsonConfig();  
  
    // 排除,避免循环引用 There is a cycle in the hierarchy!  
    jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
    jsonConfig.setIgnoreDefaultExcludes(true);  
    jsonConfig.setAllowNonStringKeys(true);  
  
    if (Validator.isNotNullOrEmpty(excludes)){  
        jsonConfig.setExcludes(excludes);  
    }  
    String string = JsonUtil.toJSON(obj, jsonConfig).toString(4, 4);  

五 相关说明
jsonp
类型:String
在一个 jsonp 请求中重写回调函数的名字。这个值用来替代在 "callback=?" 这种 GET 或 POST 请求中 URL 参数里的 "callback" 部分,比如 {jsonp:'onJsonPLoad'} 会导致将 "onJsonPLoad=?" 传给服务器。
jsonpCallback
类型:String
为 jsonp 请求指定一个回调函数名。这个值将用来取代 jQuery 自动生成的随机函数名。这主要用来让 jQuery 生成度独特的函数名,这样管理请求更容易,也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存 GET 请求的时候,指定这个回调函数名。
分享到:
评论

相关推荐

    ezmorph-1.0.6.jar和json-lib-2.2.2-jdk15.rar

    标题中的"ezmorph-1.0.6.jar"和"json-lib-2.2.2-jdk15.rar"指的是两个不同的Java库,用于处理数据转换和JSON操作。ezmorph是一个Java库,提供了对象到对象的转换功能,而json-lib是另一个库,专门用于处理JSON...

    JSON-lib框架,转换JSON、XML不再困难

    JSON-lib是一个Java库,用于将Java对象转换为JSON(JavaScript Object Notation)格式,并将JSON数据转换回等效的Java对象。JSON是一种轻量级的数据交换格式,它以易于人阅读和编写,同时也易于机器解析和生成。在...

    json-lib学习用完整jar包

    在Java开发中,json-lib是一个非常实用的库,它提供了丰富的API来处理JSON数据,包括序列化Java对象为JSON字符串,以及反序列化JSON字符串回Java对象。本篇文章将深入探讨json-lib库的使用方法、功能特性及其在实际...

    json-lib-support-spring-源码.rar

    JSON-lib 是一个流行的 Java 库,用于将 Java 对象转换为 JSON(JavaScript Object Notation)格式,反之亦然。在 "json-lib-support-spring-源码.rar" 中,我们可以找到 JSON-lib 与 Spring 框架集成的源代码,这...

    jquery-1.4.2&&jquery-1.4.2-vsdoc.js.rar

    例如,`$.ajax({url: "data.json", type: "GET", success: function(data) {...}})`会从"data.json"获取数据并在成功时执行回调函数。 `jquery-1.4.2-vsdoc.js`是Visual Studio开发者的一个宝贵资源,因为它包含了...

    json-viewer, 它是用于打印JSON和JSONP的Chrome 扩展.zip

    json-viewer, 它是用于打印JSON和JSONP的Chrome 扩展 JSON查看器 你的眼睛所见过的最漂亮和可以定制的json/。 它是用于打印JSON和JSONP的Chrome 扩展。注释:这里扩展可能会与其他JSON萤火虫/格式化程序发生碰撞,你...

    jquery.json-2.3.js

    《jQuery JSON 2.3.js:数据交互与序列化的强大工具》 在Web开发中,JSON(JavaScript Object Notation)已经成为一种广泛使用的轻量级数据交换格式,它以其易读性和易于处理的特性深受开发者喜爱。jQuery作为一个...

    jquery-jsonp:jquery jsonp 插件

    jQuery-JSONP jQuery-JSONP 是 jQuery 的 JSONP 实现的一个紧凑(1.8kB 缩小)但功能丰富的替代解决方案。 许可 jQuery-JSONP 是在下发布的。 下载 您可以下载 jQuery-JSONP(提供全文和缩小版本)。 特征 jQuery-...

    jquery-jsonp-master.zip_jsonp

    在jQuery中,使用JSONP主要通过`$.ajax()`或`$.getJSON()`方法,通过设置`dataType`为'jsonp'来启用这个功能。例如: ```javascript $.ajax({ url: 'http://otherdomain.com/data', dataType: 'jsonp', success:...

    Json-handle和jsonview插件

    1. **兼容性**:jsonview不仅支持JSON,还能够处理JSONP(JSON with Padding)格式的数据,这是一种常用于跨域数据请求的技术。 2. **折叠/展开**:与JSON-handle类似,jsonview也提供了折叠和展开JSON对象的功能,...

    jersey-json-1.7.jar

    【jersey-json-1.7.jar】是Java RESTful Web服务框架Jersey的一个扩展模块,主要专注于处理JSON(JavaScript Object Notation)数据格式。Jersey是JAX-RS(Java API for RESTful Web Services)规范的参考实现,它...

    前端开源库-json-proxy

    这样即使远程服务器不支持CORS(跨源资源共享)或者JSONP,前端也可以正常获取数据。 2. **Grunt插件**:除了作为一个独立的服务运行,`json-proxy` 还可以作为Grunt任务插件使用,方便地集成到前端构建流程中,...

    vue-jsonp:一个用于处理JSONP请求的小型库

    $jsonp ( '/some-jsonp-url' , { myCustomUrlParam : 'veryNice'} ) 直接使用功能: import { jsonp } from 'vue-jsonp'jsonp ( '/some-jsonp-url' , { myCustomUrlParam : 'veryNice'} )发送数据并设置查询和函数...

    jquery-jsonp-master.zip

    JSONP(JSON with Padding)是一种跨域数据交互协议,它利用了`&lt;script&gt;`标签不受同源策略限制的特性,允许网页从其他域名获取数据。jQuery是一个广泛使用的JavaScript库,它提供了丰富的API来处理DOM操作、事件处理...

    Silverlight通过json-rpc交互数据

    为此,我们通常采用JSONP(JSON with Padding)或CORS(Cross-Origin Resource Sharing)来解决跨域问题。 - **JSONP**:通过动态插入`&lt;script&gt;`标签,利用`src`属性可以加载跨域资源的特性,让服务器返回一个...

    json-formatter, 使 json/jsonp易于阅读.zip

    json-formatter, 使 json/jsonp易于阅读 JSON格式化程序当你在浏览器选项卡中访问 in'直接'时,很好的打印JSON和tmodel的Chrome 扩展。特性JSONP支持快速,即使在长页面上有效的JSON页面- URL不重要语法高亮显示带有...

    java-json包

    8. JSONP(JSON with Padding): 一种跨域数据交互协议,通过动态插入`&lt;script&gt;`标签实现JSON数据的获取。 9. JSONPath: 类似于XPath,用于在JSON文档中查找信息的表达式语言。 10. JSON-LD: JSON-LD...

    jquery-jsonp.js

    7、为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据...

    jsonserverrouter是jsonserver中间件其作用是提供一个简明的方式构建出各种路由接口

    JSON Server Router是一个专门为JSON Server设计的中间件,用于简化创建RESTful API的流程。JSON Server本身是一个基于Node.js的小型轻量级服务器,它模仿了Express和SQLite的行为,使得开发者可以快速搭建模拟后端...

    JSON与JAVA数据的转换

    JSON-lib不仅支持标准的JSON格式,还支持扩展格式,比如JSONP等。此外,JSON-lib还支持对JSON数据进行查询、修改等操作。 JSON-lib的官方网站为:[http://json-lib.sourceforge.net/]...

Global site tag (gtag.js) - Google Analytics