`
thrillerzw
  • 浏览: 143770 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

json/jsonp

    博客分类:
  • java
 
阅读更多

1 java解析json串

 

   import net.sf.json.JSONArray;
    
import net.sf.json.JSONObject;    

   String jsonResult= {"count":"279678", "page":"24","info":[ { "id":"100001790666",  "title":"供应MP4"} ,{ "id":"100001790667",  "title":"供应mp3"}  ] }
    //解析json串
    JSONObject jsonobj=JSONObject.fromObject(jsonResult);
    //字符串
    String count=jsonobj.get("count").toString();
    //数组
     JSONArray array = jsonobj.getJSONArray("info");
        for (int k = 0; k < array.size(); k++) {
	    JSONObject jsonobj = JSONObject.fromObject(array.getString(k));
	    String id=jsonobj.get("id").toString();
	    String title  = (String) jsonobj.get("title");
	}

 

2 List转json串(数组)

 

  import net.sf.json.JSONSerializer;

    List<String> list=xxx;
    String data =JSONSerializer.toJSON(list).toString(); //["中厚板","锅炉管","合金钢"]
    runData.getResponse().setContentType("application/json;charset=gbk");//或utf8
    PrintWriter pw = runData.getResponse().getWriter();
    pw.print(data);
    pw.close();

 

     jQuery.ajax({
           type: "POST",
           url: url,
           dataType:"json",
           data: "industryId="+industryId,
           success: function(data){ 
             //data:Array[3]
            	for(var i=0;i<data.length;i++){
            	    var supcat=data[i];             		 
            	}           	
          }
       });

 3 java后台拼接的json串

 

    //java后台拼接的json串
     String result= "{\"searchTotal\":\""+searchTotal+"\",\"keyword\":\""+keywords+"\"}";
     HttpServletResponse theRes=data.getResponse();
     theRes.setCharacterEncoding("gbk");
     theRes.setContentType("text/xml");
     theRes.getWriter().write(result);
     theRes.getWriter().close();

 

jQuery.ajax({
	type: "POST",
	url: url,
	dataType:"json",
	success: function(obj){
	      var total=obj.searchTotal;
	      var keyword=obj.keyword; 	 
	},error: function(xhr,status,errMsg){ 
			   	
	}  
})

 注:如果不使用jquery(dataType:"json") ,用js需要var jsonobj=eval('('+obj+')');

为什么要 eval这里要添加'('+obj+')'呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]

 

4  jsonp 

跨域需要使用,ajax可以使用firebug控制台运行,看页面变化来测试代码。

		String callback = request.getParameter("callback");
		String data = JSONSerializer.toJSON(list).toString();
		response.setContentType("application/json;charset=gbk");
		PrintWriter pw = response.getWriter();
		if(callback != null){
			pw.print(callback+"("+data+")");
		}else{
			pw.print(data);
		}
		pw.close();

 

               var url = "http:xxx?callback=?";
		var industryId=jQuery("#industryId").val();
		jQuery.ajax({
	             type: "get", //post
  		     url: url,
  		     dataType:"jsonp",
	         //contentType: "application/x-www-form-urlencoded; charset=utf-8",
		 //timeout:2000,
            data: "industryId="+industryId,
            success: function(data){
                if(data!=null){
                { 	 
            	     var html="";
            	     for(var i=0;i<data.length;i++){
            	        var supcatName=data[i].supcatName;
            	     }
            	   }
            	  jQuery("#moreSupcat ul").html(html);   
            	
            }                 
         });

 

附件有jar包

分享到:
评论

相关推荐

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

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

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

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

    json和jsonp数据格式返回

    JSON(JavaScript Object Notation)和JSONP(JSON with Padding)是两种常见的数据交换格式,尤其在Web开发中广泛使用。本文将深入探讨这两种格式的特点、用途以及它们在跨域数据请求中的作用。 **1. JSON简介** ...

    详解JSON和JSONP劫持以及解决方法.docx

    "详解JSON和JSONP劫持以及解决方法" 本文主要介绍了JSON和JSONP劫持的概念、攻击过程、解决方法以及实例代码,旨在帮助读者深入理解这两种攻击方式,并提供实际有效的解决方法。 JSON劫持 JSON劫持,也称为JSON ...

    json-viewer:这是一个Chrome扩展程序,用于打印JSON和JSONP

    您所见过的最美丽,最可定制的JSON / JSONP荧光笔。 这是一个Chrome扩展程序,用于打印JSON和JSONP。 笔记: 此扩展名可能与其他JSON荧光笔/格式化程序一起崩溃,您可能需要禁用它们 要突出显示本地文件和隐身...

    用nodejs实现json和jsonp服务的方法

    Node.js实现JSON和JSONP服务是一种常见的需求,尤其在需要进行跨域数据访问时。JSON是一种轻量级的数据交换格式,基于JavaScript的一个子集。而JSONP(JSON with Padding)是为了解决同源策略限制而发明的一种跨域...

    JSON和JSONP(含jQuery实例)

    JSONP(JSON with Padding)是JSON的一种使用模式,它允许Web页面通过`&lt;script&gt;`标签来跨域请求数据。由于同源策略的限制,JavaScript通常不能直接向其他域名请求数据,但`&lt;script&gt;`标签却不受此限制,JSONP正是利用...

    说说JSON和JSONP 也许你会豁然开朗

    JSON(JavaScript Object Notation)和JSONP(JSON with Padding)就是为了解决这两个问题而产生的技术。 JSON是一种轻量级的数据交换格式,它基于纯文本,拥有良好的跨平台传递能力,并且与JavaScript有原生的集成...

    深入讲解xhr(XMLHttpRequest)/jsonp请求之abort

    主要给大家深入的介绍了关于xhr(XMLHttpRequest)/jsonp请求之abort的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    chrome json viewer

    chrome json viewer插件;支持json/jsonp;格式化查看api接口返回的数据;测试、开发必备插件,你值得拥有~

    Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别.docx

    ### Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别 #### 一、Jsonp 关键字详解 Jsonp(JSON with Padding)是一种跨域数据交互协议,它允许在一个网页中请求并获取另一个域的服务端数据。Jsonp 的工作...

    什么是json和jsonp,jQuery json实例详详细说明

    JSONP(JSON with Padding)是一种解决浏览器同源策略限制的技术,允许Web页面从其他域名请求数据。由于JavaScript不能直接通过Ajax进行跨域请求,但可以加载跨域的JavaScript文件,JSONP利用这个特性,通过在服务器...

    JSONView+CSSView+CSSPeeper.zip

    CSSPeeper是一款专为设计师量身打造的可视觉化网站CSS样式表检查插件。 CSSViewer是一款可以自由查看当前网页中元素CSS的详细属性...JSON Viewer是最漂亮的、可定制的JSON/JSONP荧光笔高亮插件,用于打印JSON和JSONP。

    struts2+json/ajax

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且易于管理的企业级应用程序。它结合了MVC设计模式,使得开发人员...在实际开发中,还应注意安全问题,如防止XSS和CSRF攻击,以及正确处理JSONP跨域请求等。

    搜索上传代码

    2. **JSON和JSONP**:JSON(JavaScript Object Notation)是用于数据交换的标准格式,而JSONP(JSON with Padding)是一种跨域数据交互协议,通过动态插入`&lt;script&gt;`标签来规避同源策略的限制。 - `serverjson2....

    json与jsonp知识小结(推荐).docx

    ### JSON与JSONP知识点详解 #### 一、JSON简介 **JSON**(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 ##### JSON的基本...

    Jsonp和java操作

    $.getJSON("http://localhost:8080/Jsonp/jsonp.jsp?callback=?", function(json) { alert(json[0].name); }); &lt;/script&gt; ``` 在jQuery的示例中,`callback=?`表示jQuery会自动处理回调函数名的传递和函数的...

    浅析json与jsonp区别及通过ajax获得json数据后格式的转换

    有关json与jsonp的区别(json才是目的,jsonp只是手段)介绍如下所示: 一言以蔽之,json返回的是一串数据;而jsonp返回的是脚本代码(包含一个函数调用); JSON其实就是JavaScript中的一个对象,跟var obj={}在质...

    JSON to JSONP- Bypass Same-Origin Policy

    而JSONP(JSON with Padding)则是一种非官方的解决JSON跨域问题的技术。 在Web开发中,浏览器的同源策略(Same-Origin Policy)是一项重要的安全机制,它限制了来自不同源的“脚本”之间交互。这意味着,一个网页...

Global site tag (gtag.js) - Google Analytics