`
寻觅一只耳朵
  • 浏览: 35653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多
引用

前些天,我同学让我帮他看一关于list<类>转换为$.ajax的json数据的问题。
刚开始他让我看他做的我让他alert(data)结果是类的地址做成的数组。
然后我突发奇想,既然类默认调用toString的时候是打印地址,那么我可不可以重写一下toString()的那个方法,在toString()中让他返回组装的json数据,结果果然凑效。
但我不知道为什么很少人这么写,所以发表出来一是大家分享一下,二是听听大家对这种写法的意见。

引用


People.java  人实体类


 * @作者:zoupengfei
 * @时间: 2011-8-5 
 */

package jsondemo.entity;

import java.util.ArrayList;
import java.util.List;
public class People {
private String name;
private int age;
private String addr;
private List<Major> majors=new ArrayList<Major>();
public List<Major> getMajors() {
	return majors;
}
public void setMajors(List<Major> majors) {
	this.majors = majors;
}
public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
public String getAddr() {
	return addr;
}
public void setAddr(String addr) {
	this.addr = addr;
}
@Override
public String toString() {
	StringBuffer sb=new StringBuffer(1000);
	sb.append("{");
	sb.append("\"name\":\"");
	sb.append(this.name);
	sb.append("\",\"age\":");
	sb.append(this.age);
	sb.append(",\"addr\":\"");
	sb.append(this.addr);
	sb.append("\",\"majors\":");
	sb.append(this.majors);
	sb.append("}");
	return sb.toString();
}

}




引用

Major.java专业实体类


 * @作者:zoupengfei
 * @时间: 2011-8-5 
 */

package jsondemo.entity;
public class Major {
   private String name;
  private int level;
public int getLevel() {
	return level;
}

public void setLevel(int level) {
	this.level = level;
}

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}
@Override
public String toString() {
	StringBuffer sb=new StringBuffer(1000);
	sb.append("{");
	sb.append("\"name\":\"");
	sb.append(this.name);
	sb.append("\",\"level\":");
	sb.append(this.level);
	sb.append("}");
	return sb.toString();
}

}




引用

ListToJson.java
servlet类


 * @作者:zoupengfei
 * @时间: 2011-8-5 
 */

package jsondemo.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jsondemo.entity.Major;
import jsondemo.entity.People;
public class ListToJson extends HttpServlet {

	public ListToJson() {
		super();
	}
	public void destroy() {
		super.destroy(); 
	}

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		this.doPost(request, response);
		out.flush();
		out.close();
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		List<People> peoples=new ArrayList<People>();
		for(int i=0;i<100;i++){
			People p=new People();
		    List<Major> majors=new ArrayList<Major>();
		    Major m=new Major();
		    m.setName("major1-"+i);
		    m.setLevel(1);
		    Major m2=new Major();
		    m2.setName("major2-"+i);
		    m2.setLevel(2);
		    majors.add(m);
		    majors.add(m2);
		   if(i%2==0){
			   majors.add(m);
			   majors.add(m2);
		   }
		    p.setMajors(majors);
			p.setAddr("addr-"+i);
			p.setName("name-"+i);
			p.setAge(i);
			peoples.add(p);
		} 
		out.print(peoples);
		out.flush();
		out.close();
	}

	public void init() throws ServletException {

	}

}


引用

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>ListToJson</servlet-name>
    <servlet-class>jsondemo.servlet.ListToJson</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ListToJson</servlet-name>
    <url-pattern>/ListToJson</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>


引用

getjson.js
获取ajax的json数据


 ;(function($){
		$.jsonmanage={
				
				init:function(){
	
                 $("#b").toggle(
                      function (){
					       $.ajax({
					       url:"ListToJson",
						   type:"post",
						   datatype:"json",
						   success:function(data){ 
					           var d=eval("("+data+")"); 
					            var table=$("#show");    
								  var th=$(" <tr><th class='head'>name</th><th class='head'>age</th><th class='head'>addr</th><th class='head'>majors</th></tr>");
								  table.append(th);
								   for(var i=0;i<d.length;i++){
							       var majors=d[i].majors;
						         	    var tr=$("<tr></tr>");
						         	    var td1=$("<td></td>");
						         	    td1.append(d[i].name);
						         	    var td2=$("<td></td>");
						         	    td2.append(d[i].age);
						         	    var td3=$("<td></td>");
						         	    td3.append(d[i].addr);
						         	    var td4=$("<td></td>");
						         	    var select=$("<select></select>");
						         	    for(var j=0;j<majors.length;j++){
						         	         var option=$("<option></option>");
						         	         option.val(majors[j].level);
						         	         option.append(majors[j].name);
						         	         select.append(option);
						         	    }
						         	    td4.append(select);
						         	    if(i%2==0){
						         	       tr.addClass("even");
						         	    }else{
						         	     tr.addClass("odd");
						         	    }
						         	    tr.append(td1).append(td2).append(td3).append(td4);;
						         	    table.append(tr);
							     }
					            }
				               });
				     }
                     ,
                     function(){
                      var table=$("#show");
                      table.empty();
                     }
                   );
            }
		}
		})(jQuery);


引用

showjson.jsp
页面展示


<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<link rel="stylesheet" href="<%=path%>/csslib/style.css" />
	<script type="text/javascript" src="<%=path%>/jslib/jquery-1.4.4.min.js"></script>
	<script type="text/javascript" src="<%=path%>/jsmanage/getjson.js"></script>
	<script type="text/javascript">
	
	  ; (function($){
			$(document).ready(function(){
                 $.jsonmanage.init();
			 });
		})(jQuery);
	</script>
  </head>
  
  <body>
  <hr width="90%" align="center" color="green" size="20">
  [align=center]
<input type="button" value="onclick to make the json data show out!" id="b"></input>
[/align]
[align=center]
<table id="show" width="60%"  cellpadding="0" cellspacing="0" class="sortable">
</table>

[/align]
  </body>
</html>

1
3
分享到:
评论

相关推荐

    ObjectToJSON工具jar包

    "ObjectToJSON工具jar包"是一个专为Java开发者设计的实用工具库,它主要用于将Java对象转换成JSON格式的字符串,反之亦然。在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于...

    Backbone Demo and Object to JSON

    在“Backbone Demo and Object to JSON”的项目中,可能包含了一个Java应用程序,该程序使用上述技术将Java对象转换为JSON,然后与使用Backbone.js构建的前端进行通信。这种前后端的数据交换是现代Web应用中的常见...

    ObjectToJson

    这个类提供了很多可以转化为Json格式的,真的是很有用

    javascript object to json string

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在JavaScript中,我们可以使用`JSON.stringify()`方法将JavaScript对象...

    简单对象序列化 扩展Object.ToJson

    本文将深入探讨“简单对象序列化”以及如何通过扩展方法`Object.ToJson`来实现这一功能。 首先,让我们理解什么是对象序列化。对象序列化是将对象的状态转换为可存储或可传输的形式的过程。这通常涉及到将对象的...

    java反射实现Object转json

    public static String objectToJson(Object obj) throws Exception { Class&lt;?&gt; clazz = obj.getClass(); Map, Object&gt; map = new HashMap(); for (Field field : clazz.getDeclaredFields()) { field....

    php 把对象转化为json

    在PHP中,将对象转换为JSON(JavaScript Object Notation)是一种常见的操作,特别是在与前端交互时,例如在AJAX请求中。JSON格式是轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。下面我们将...

    jsontoobject

    json 生成 解析 , ios ,android ,json , object to json

    ajax json java 用法 json 将List、Object转换为Json格式字符串

    - 遍历列表中的每个元素,调用 `objectToJson` 方法将元素转换为 JSON 字符串并添加到 `json` 中。 - 最后将末尾的逗号替换为 `]` 并返回 JSON 字符串。 4. **主函数**: - 定义了一个包含三个 `Person` 对象的 ...

    ResultSet_to_json.jar

    标题“ResultSet_to_json.jar”指的是一个Java应用程序,其主要功能是将数据库查询结果集(ResultSet)以及List等数据结构转换为JSON(JavaScript Object Notation)格式的字符串。JSON是一种轻量级的数据交换格式,...

    安卓 JSON实现对象和数组的相互转换

    以下是一个简单的`GsonUtil`类实现,包含两个主要方法:`jsonToObject`和`objectToJson`。 ```java import com.google.gson.Gson; public class GsonUtil { private static Gson gson = new Gson(); // 将JSON...

    List转Json

    public String listToJson(List&lt;Object&gt; dataList) { ObjectMapper mapper = new ObjectMapper(); try { return mapper.writeValueAsString(dataList); } catch (Exception e) { e.printStackTrace(); } ...

    java jsonto对象互转

    public static String objectToJson(Object javaObj, String dataFormat) { JSONObject json; JsonConfig jsonConfig = configJson(dataFormat); json = JSONObject.fromObject(javaObj, jsonConfig); return ...

    解决litjson 中JsonData.ToJson()中文转码问题

    从服务端收到的json中有中文 然后JsonData jd = JsonMapper.ToObject(strJson); json中如有中文 会出现\uXXXX\uXXXX等 我改了下 上传了能解决此问题的litjson版本

    利用反射实现对象转json格式字符串

    注意,我们只处理了声明在当前类中的字段,如果对象的类有父类并且不是`Object`类,我们需要递归地调用`objectToJson`方法,处理父类的字段。最后,我们将`jsonMap`转换为字符串并返回。 这个简单的实现有一个限制...

    C#源码 object与json数据序列化与反序列化

    利用.Net FrameWork3.5提供的Json库实现C#与Json数据转换时,对于Datetime类型的数据,生成格式如下数据 /Date(10000000000-0700)/ 不直观,同时...String sJson =t.ToJson(); T t1 = JosonHelper.FromJson(sJason);

    json for PHP4.0

    echo "Object to JSON: $objectJsonStr\n"; ``` 在这个压缩包中,开发者已经努力使`Json`类与PHP5.0的`json_encode`保持兼容,这意味着即使在较老的PHP版本下,我们也可以期望得到与官方函数相似的输出结果。 总结...

    自己实现的Android中将任意实体类(Entity、vo、dto、Model)对象(object)转为Json字符串的一个类

    public static String objectToJson(Object obj) { return gson.toJson(obj); } // 将Json字符串反序列化为指定类型的对象 public static &lt;T&gt; T jsonToObject(String json, Class&lt;T&gt; clazz) { return gson....

    XML to JSON and JSON to XML converter

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种广泛用于数据交换和存储的格式。XML是一种结构化标记语言,适用于描述复杂的数据结构,而JSON则以更简洁的格式来表示数据,通常用于...

    android常用json传值解析工具类

    public static String objectToJson(Object obj) { return JSON.toJSONString(obj); } ``` - JSON字符串转对象: ```java public static &lt;T&gt; T jsonToObject(String jsonString, Class&lt;T&gt; clazz) { return ...

Global site tag (gtag.js) - Google Analytics