`
寻觅一只耳朵
  • 浏览: 34236 次
  • 性别: 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

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

    Backbone Demo and Object to JSON

    Backbone Demo and Object to JSON,Backbone.js的小例子,还有Java对象转JSON的dependent jar

    ObjectToJSON工具jar包

    ObjectToJSON工具jar包

    javascript object to json string

    NULL 博文链接:https://shuaigg-babysky.iteye.com/blog/458603

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

    简单对象序列化 扩展Object.ToJson 有时候需要将对象内部的成员全部打印出来。就用这个扩展...

    java jsonto对象互转

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

    jsontoobject

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

    php 把对象转化为json

    NULL 博文链接:https://hw1287789687.iteye.com/blog/2188621

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

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

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

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

    json之间的转换

    json与list之间的转换,json to object,object to json

    一个适合新手学习的电商项目

    JsonUtils.objectToJson(itemList), true); } return TaotaoResult.ok(); } /** * 删除购物车商品 */ @Override public TaotaoResult deleteCartItem(long itemId, HttpServletRequest request, ...

    babel-plugin-object-to-json-parse:该插件将对象文字转换为JSON.parse

    babel-plugin-object-to-json-parse :rocket: 该存储库受启发只要仅对JSON字符串求值一次,与JavaScript对象文字相比,JSON.parse方法就快得多,尤其是对于冷负载。JSON.parse的对象该插件将对象文字转换为JSON....

    C#实现String类型和json之间的相互转换功能示例

    public static string ObjectToJson(object obj) { return JavaScriptConvert.SerializeObject(obj); } // 从一个Json串生成对象信息 public static object JsonToObject(string jsonString,object obj) { return ...

    object与 json 相互转换工具类

    CSDN上另外一篇博客的附带资源太贵了,我就整个最...String str1 = g1.toJson(list1); //json 转list Gson g2 = new Gson(); List&lt;String&gt; list2 = g2.fromJson(str1, new TypeToken&lt;List&lt;String&gt;&gt;(){}.getType());

    Java JSON与Object互转源代码

    高效的JSON与Object互转的工具源代码,如果JSON数据未按该工具规定的数据格式转化成对象,将转化成java.util.Map实例。 (比JSON官方的API更适用。支持对象之间的多级引用,支持Map, List等集合。不需要引用其它中间...

    支持Lazarus2.10的JSON解析组件superobject

    此版本的superobject组件,修正了无法在Lazarus下编译的问题. 使用示例: var aa:Isuperobject; begin aa:=SO(); aa.S['aa']:=Utf8toAnsi( '语文'); aa.I['age']:=29; aa.D['price']:=89.80; Memo1.Text:=aa.As...

    JSON2.JS JSON.JS JSON_PARSE.JS

    toJSONString method and a parseJSON method to Object.prototype. Use of this file is not recommended. json_parse.js: This file contains an alternative JSON parse function that uses recursive descent ...

    Json字符串和对象的转换.txt

    public static String toJson(Object obj) { String result=""; try { result = MAPPER.writeValueAsString(obj); } catch (JsonProcessingException e) { e.printStackTrace(); //将编译...

    encoding.json:迁移到 https

    // A toJSON method should return the representation of the object toJSON : function ( ) { return { '#type' : 'Nothing' } } , // And a fromJSON method should return an Either.Right, if the // ...

Global site tag (gtag.js) - Google Analytics