`
jaesonchen
  • 浏览: 310003 次
  • 来自: ...
社区版块
存档分类
最新评论

使用JsonResult返回json数据

 
阅读更多
<html>
  <head>
	<script type="text/javascript" src="js/jquery-1.11.3.js">
	</script>
	
	<script type="text/javascript">
	$(document).ready(function() {
  		$("#myButton1").click(function() {
  			$.post("/StudyExample/json/JSONAction.action", {}, 
  			function(data,status){
  				$("#myDiv1").html(data);
  			});
  		
  		});
	});
	
	$(document).ready(function() {
  		$("#myButton2").click(function() {
  			$.post("/StudyExample/JSONAction.action", {}, 
  			function(data,status){
  				$("#myDiv2").html(data);
  			});
  		
  		});
	});
	</script>
  </head>
  
  <body>
    <div id="myDiv1"><h2>Let AJAX change this text1</h2></div>
	<button id="myButton1" type="button">Change Content1</button>
	<div id="myDiv2"><h2>Let AJAX change this text2</h2></div>
	<button id="myButton2" type="button">Change Content2</button>
  </body>
</html>

 

import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.Arrays;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.apache.struts2.ServletActionContext;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.opensymphony.xwork2.ActionSupport;

import com.jaeson.hibernatestudy.bean.Address;
import com.jaeson.hibernatestudy.bean.User;

@SuppressWarnings("all")
@Scope("prototype")
@Controller("jsonAction")
public class JSONAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		map.put("jaeson", new Address("海淀", 100, "1361"));
		map.put("chenzq", new Address("昌平", 101, "1352"));
		return SUCCESS;
	}
	
	/** 
	 * 在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码), 
	 * HttpServletResponse则会返回一个用默认的编码(既ISO-8859-1)的PrintWriter实例。这样就会 
	 * 造成中文乱码。而且设置编码时必须在调用getWriter之前设置,不然是无效的。 
	 */  
	public void writeJSON() throws IOException{
		
		HttpServletResponse response=ServletActionContext.getResponse();
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		/*String jsonString="{\"user\":{\"id\":\"123\",\"name\":\"张三\",\"say\":\"Hello , i am a action to print a json!\",\"password\":\"JSON\"},\"success\":true}";
		out.println(jsonString);
		out.flush();
		out.close();*/
		Map<String, User> map = new HashMap<String, User>();
		User user1 = new User();
		user1.setId("1001");
		user1.setUserName("chenzq");
		user1.setAddress(new Address("beijing", 100021, "134"));
		User user2 = new User();
		user2.setId("1002");
		user2.setUserName("jaesonchen");
		user2.setAddress(new Address("shanghai", 200021, "133"));
		map.put("user1", user1);
		map.put("user2", user2);
		
		JSONObject json = new JSONObject();
		json.accumulate("map", map);
		//JSONObject json = JSONObject.fromObject(map);
		out.println(json.toString());
		out.flush();
		out.close();
	}
	
	private String fieldString = "String value";
	private int fieldInt = 100;
	private double fieldDouble = 99.1;
	private boolean fieldBoolean = false;
	private int[] arrayInt = {101, 102, 103};
	private List<String> list = Arrays.asList("Buenos Aires", "Córdoba La", "La Plata");
	private Map<String, Address> map = new HashMap<String, Address>();
	//field without getter method 不会被序列化
	private String fieldNoGetter = "NoGetter value";
	public String getFieldString() {
		return fieldString;
	}
	public int getFieldInt() {
		return fieldInt;
	}
	public double getFieldDouble() {
		return fieldDouble;
	}
	public boolean isFieldBoolean() {
		return fieldBoolean;
	}
	public int[] getArrayInt() {
		return arrayInt;
 	}
 	public List<String> getList() {
  		return list;
 	}
 	public Map<String, Address> getMap() {
  		return map;
 	}
 	/**
 	public String getFieldNoGetter() {
  		return fieldNoGetter;
 	}*/
}

 

 

不使用JsonResult的配置:

<action name="JSONAction" class="jsonAction" method="writeJSON" />

 

使用JsonResult的配置:

 

<package name="json" extends="json-default" namespace="/json">
   <action name="JSONAction" class="jsonAction">
     <result type="json">
      <!-- 指定内容类型,默认为application/json,IE浏览器会提示下载 -->
      <param name="contentType">text/html</param>
      <!-- 默认将会序列所有有返回值的getter方法的值,而无论该方法是否有对应属性。
         root代表从哪里开始序列化,如果root是对象则会将root对象中所有的getter方法都进行序列化。 -->  
      <!-- <param name="root">map</param> -->
      <!-- 指定是否序列化空的属性,默认为false,序列化空属性,对象为null,string为"" -->
      <!-- <param name="excludeNullProperties">true</param> -->
      <!-- 这里指定将序列化map中的那些属性 -->
      <!-- <param name="includeProperties">userList.*</param> -->
      <!-- 这里指定将要从map中排除那些属性,这些排除的属性将不被序列化,一般不与上边的参数配置同时出现。
       如果相同属性同时指定exclude和include,则exclude的优先级高,因此不序列化该属性-->  
      <!-- <param name="excludeProperties">
       SUCCESS
      </param> -->
    </result>
  </action>
 </package>

 

 

分享到:
评论

相关推荐

    详解mvc使用JsonResult返回Json数据

    在controller中使用JsonResult返回JSON数据的基本方法是创建一个JsonResult实例,并将其Data属性设置为要返回的对象。*** MVC框架内部会自动将Data对象序列化为JSON格式。下面是一个具体的例子: ```csharp public ...

    APP客户端访问SSH框架服务器返回json数据实例(服务端和客户端源码)

    hello=22222”得到返回json数据{"description":"hahaha","hi":"22222","jsonResult":{"users":[{"ID":"xiangxiang"}]},"status":0} 2.以上完成后证明服务器什么的都没问题了, 那么直接运行运行APP就可以, 保证:...

    asp.net json格式数据

    这些方法可以返回JSON数据,通过`[ScriptMethod(ResponseFormat = ResponseFormat.Json)]`来指定。 6. ** SignalR 和 JSON**: - SignalR是ASP.NET的一个库,用于实现实时双向通信。在SignalR中,服务器和客户端...

    使用JSON插件实现JSON类型的Result

    在IT行业中,JSON(JavaScript Object Notation)是一种...在这个例子中,JSP可能通过AJAX向`LoginAction`发送POST请求,获取返回的JSON数据,并根据"success"字段更新界面。例如,使用jQuery进行异步请求: ```jsp ...

    Mvc传递Json数据

    在控制器方法中,我们可以使用`JsonResult`类来返回Json数据。例如: ```csharp public JsonResult GetData() { var data = new { Name = "John", Age = 30 }; return Json(data, JsonRequestBehavior.AllowGet);...

    C#处理json数据

    `JsonResult`用于返回JSON格式的数据到前端。 #### C#后台处理JSON数据 对于从外部API或数据库查询得到的JSON数据,C#提供了强大的库如`Newtonsoft.Json`来进行序列化和反序列化。首先,需要定义一个与JSON数据...

    数据表转化为Json数据代码实现

    另外,如果你在ASP.NET MVC或Web API项目中工作,可能会使用到`System.Web.Mvc.JsonResult`或`System.Web.Http.Results.JsonResult`,这些结果类型可以直接在控制器中返回Json数据,自动处理了`DataTable`到Json的...

    struts2.1.8.1+jquery1.4.2返回json数据

    3. **Struts2与JSON的集成**:在Struts2中,可以通过配置Action类和结果类型来返回JSON数据。通常,需要在Action类的方法上添加`@ResponseBody`注解或使用`JsonResult`结果类型。此外,还需要在struts.xml配置文件中...

    Mvc_JsonResult试验

    这个“Mvc_JsonResult试验”提供了从后端MVC控制器返回JSON数据的基本示例,以及前端如何使用AJAX获取这些数据。通过熟练掌握这些技术,你可以构建更加动态和响应式的Web应用。在实践中,不断探索和优化,如数据缓存...

    C#接收json数据后中文乱码解决方法

    C#接收Json格式数据,中文出现乱码解决方法

    解决ASP.NET MVC返回的JsonResult 中 日期类型数据格式问题,和返回的属性名称转为“驼峰命名法”

    在使用ASP.NET MVC 在写项目的时候发现,返回给前端的JSON数据,日期类型是 Date(121454578784541) 的格式,需要前端来转换一下才能用来使用。 C#对象属性名称转换成JSON自动转成“驼峰命名法” 问题 在C#中推荐的...

    Struts2 与Jquery Ajax的json数据交换的典型范例

    总结,Struts2和jQuery的Ajax JSON数据交换涉及以下几个关键步骤:配置Struts2的JSON插件,编写返回JSON数据的Action,使用jQuery发起Ajax请求并处理返回的JSON数据。通过这种方式,可以实现客户端与服务器之间的...

    struts2向服务器返回json信息

    本示例主要探讨如何在Struts2框架中实现从服务器向客户端返回JSON数据。 首先,让我们了解JSON的基本结构。JSON是一种数据交换格式,它以键值对的形式存储数据,类似于JavaScript对象。例如: ```json { "name": ...

    struts 传递json数据

    在 Struts2 配置文件中,我们需要定义一个结果类型为 `json` 的结果,这样当返回 "success" 时,Struts2 将使用 `JSONResult` 处理 JSON 数据: ```xml &lt;result type="json"/&gt; ``` 在前端,通常使用 ...

    struts2 1 8生成返回json 修正

    // 生成并返回JSON数据 return "success"; } } ``` 3. **生成JSON对象**: 在Action的执行方法中,通常会创建一个Map或自定义对象来存储要返回的数据,然后将这些数据转化为JSON格式。Struts2的JSON插件会...

    json数据处理简单的源代码

    例如,使用$.ajax或$.getJSON方法获取并解析JSON数据: ```javascript $.ajax({ url: '/Home/GetPerson', type: 'GET', dataType: 'json', success: function(data) { console.log(data.Name); // 输出:...

    aspnet mvc 2.0与 jquery中 json数据的交互

    - **接收JSON数据**:在ASP.NET MVC,我们可以使用`FromBody`属性来解析JSON数据: ```csharp [HttpPost] public ActionResult SaveData([FromBody] dynamic data) { var keyValue = data.key; // 保存数据逻辑 ...

    解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法.docx

    这样,当返回JSON数据时,日期时间将以指定的格式"yyyy-MM-dd HH:mm:ss"呈现。这种方法允许你灵活地控制日期时间的格式,而不受默认JsonResult行为的限制。 总的来说,解决ASP.NET MVC返回JsonResult中DateTime类型...

    [MVC]bootstrap-table表格ajax获取json数据并分页

    在MVC的控制器中,我们需要创建一个方法来处理AJAX请求并返回JSON数据。这里假设我们有一个名为`HomeController`的控制器,其中包含一个`GetJsonData`方法: ```csharp using System.Web.Mvc; using Newtonsoft....

Global site tag (gtag.js) - Google Analytics