<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>
相关推荐
在controller中使用JsonResult返回JSON数据的基本方法是创建一个JsonResult实例,并将其Data属性设置为要返回的对象。*** MVC框架内部会自动将Data对象序列化为JSON格式。下面是一个具体的例子: ```csharp public ...
hello=22222”得到返回json数据{"description":"hahaha","hi":"22222","jsonResult":{"users":[{"ID":"xiangxiang"}]},"status":0} 2.以上完成后证明服务器什么的都没问题了, 那么直接运行运行APP就可以, 保证:...
这些方法可以返回JSON数据,通过`[ScriptMethod(ResponseFormat = ResponseFormat.Json)]`来指定。 6. ** SignalR 和 JSON**: - SignalR是ASP.NET的一个库,用于实现实时双向通信。在SignalR中,服务器和客户端...
在IT行业中,JSON(JavaScript Object Notation)是一种...在这个例子中,JSP可能通过AJAX向`LoginAction`发送POST请求,获取返回的JSON数据,并根据"success"字段更新界面。例如,使用jQuery进行异步请求: ```jsp ...
在控制器方法中,我们可以使用`JsonResult`类来返回Json数据。例如: ```csharp public JsonResult GetData() { var data = new { Name = "John", Age = 30 }; return Json(data, JsonRequestBehavior.AllowGet);...
`JsonResult`用于返回JSON格式的数据到前端。 #### C#后台处理JSON数据 对于从外部API或数据库查询得到的JSON数据,C#提供了强大的库如`Newtonsoft.Json`来进行序列化和反序列化。首先,需要定义一个与JSON数据...
另外,如果你在ASP.NET MVC或Web API项目中工作,可能会使用到`System.Web.Mvc.JsonResult`或`System.Web.Http.Results.JsonResult`,这些结果类型可以直接在控制器中返回Json数据,自动处理了`DataTable`到Json的...
3. **Struts2与JSON的集成**:在Struts2中,可以通过配置Action类和结果类型来返回JSON数据。通常,需要在Action类的方法上添加`@ResponseBody`注解或使用`JsonResult`结果类型。此外,还需要在struts.xml配置文件中...
这个“Mvc_JsonResult试验”提供了从后端MVC控制器返回JSON数据的基本示例,以及前端如何使用AJAX获取这些数据。通过熟练掌握这些技术,你可以构建更加动态和响应式的Web应用。在实践中,不断探索和优化,如数据缓存...
C#接收Json格式数据,中文出现乱码解决方法
在使用ASP.NET MVC 在写项目的时候发现,返回给前端的JSON数据,日期类型是 Date(121454578784541) 的格式,需要前端来转换一下才能用来使用。 C#对象属性名称转换成JSON自动转成“驼峰命名法” 问题 在C#中推荐的...
总结,Struts2和jQuery的Ajax JSON数据交换涉及以下几个关键步骤:配置Struts2的JSON插件,编写返回JSON数据的Action,使用jQuery发起Ajax请求并处理返回的JSON数据。通过这种方式,可以实现客户端与服务器之间的...
本示例主要探讨如何在Struts2框架中实现从服务器向客户端返回JSON数据。 首先,让我们了解JSON的基本结构。JSON是一种数据交换格式,它以键值对的形式存储数据,类似于JavaScript对象。例如: ```json { "name": ...
在 Struts2 配置文件中,我们需要定义一个结果类型为 `json` 的结果,这样当返回 "success" 时,Struts2 将使用 `JSONResult` 处理 JSON 数据: ```xml <result type="json"/> ``` 在前端,通常使用 ...
// 生成并返回JSON数据 return "success"; } } ``` 3. **生成JSON对象**: 在Action的执行方法中,通常会创建一个Map或自定义对象来存储要返回的数据,然后将这些数据转化为JSON格式。Struts2的JSON插件会...
例如,使用$.ajax或$.getJSON方法获取并解析JSON数据: ```javascript $.ajax({ url: '/Home/GetPerson', type: 'GET', dataType: 'json', success: function(data) { console.log(data.Name); // 输出:...
- **接收JSON数据**:在ASP.NET MVC,我们可以使用`FromBody`属性来解析JSON数据: ```csharp [HttpPost] public ActionResult SaveData([FromBody] dynamic data) { var keyValue = data.key; // 保存数据逻辑 ...
这样,当返回JSON数据时,日期时间将以指定的格式"yyyy-MM-dd HH:mm:ss"呈现。这种方法允许你灵活地控制日期时间的格式,而不受默认JsonResult行为的限制。 总的来说,解决ASP.NET MVC返回JsonResult中DateTime类型...
在MVC的控制器中,我们需要创建一个方法来处理AJAX请求并返回JSON数据。这里假设我们有一个名为`HomeController`的控制器,其中包含一个`GetJsonData`方法: ```csharp using System.Web.Mvc; using Newtonsoft....