现在通过json和gson来实现完成一个级联下拉列表框

现在通过json和gson来实现完成一个级联下拉列表框(例如:省市联动)

1、前台jsp页面:

<select name="address.upLeverId" id="Townside1">
				<span style="white-space:pre">	</span><option value="-1">请选择</option>
	                	<s:iterator value="#request.addresses" id="area">
	                		<option value="${id}" >${addressName}</option>
	                	</s:iterator>
		    </select>
	 	<select name="address.id" id="thecountrysides1">
            </select>

2、前台js实现:

<script type="text/javascript" src="<%=path%>/js/jquery-1.9.1.min.js"> </script>
<script type="text/javascript" >
$(document).ready(function(){
			/**
		 * 选择区域
		 */
		$("#Townside1").change(function(){
			var $countrysides = $("#thecountrysides1");
			var $this = $(this);
			$.ajax( {
				type : "POST",
				url: "Commodity_getcountrysides.do",
				data:"address.id="+$this.val(),
				dataType : "json",
				contentType : "application/x-www-form-urlencoded ; charset=UTF-8",// 解决传递中文乱码的问题
				success : function(msg) {
						$countrysides.empty();
							   $countrysides.append("<option selected='selected' value='-1'>请选择</option>");
						if(msg.status == 1){
							   //"全部"的"value"属性值应为"",与js校验相对应
							   $.each(msg.countrysides,function(index,item){
								   $("<option>",{"value":item.id,"text":item.addressName}).appendTo($countrysides);
							   });
						}
					}
				});
		});
	});
</script>

3、后台java实现代码:

public void getcountrysides(){
		try {

			JSONObject jsonObject = new JSONObject();
			Gson gson = new Gson();

			if(null !=address && null!=address.getId()){
				//查询地区
				List<DAddress> addresses= addressService.query(address.getId());(这个是根据前台传来的第一级地区来获取它下一级的数据)

				//返回浏览器

				if(null !=addresses && !addresses.isEmpty()){
					System.out.println("gson.toJson(addresses:"+gson.toJson(addresses));(通过这个方式可以看出集合数据,这个也是gson的一大优势)
					jsonObject.accumulate("countrysides", gson.toJson(addresses));
					jsonObject.accumulate(RETRUEN_STATUS, SUCCESS_STATUS);
				}else{
					jsonObject.accumulate(RETRUEN_STATUS, ERROR_STATUS);
				}
			}else{
				jsonObject.accumulate(RETRUEN_STATUS, ERROR_STATUS);
			}
			System.out.println("jsonObject.toString():"+jsonObject.toString());
			outPrint(jsonObject.toString());(最钟还是要传输json格式数据,前台可以很方便的通过msg获取数据)
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

	}
时间: 2024-10-12 23:52:25

现在通过json和gson来实现完成一个级联下拉列表框的相关文章

通过Json和Gson,快速生成和解析json字符串

1,首先我们要先明白json与gson有什么区别 其实他们是完全不同的概念: json是一种数据格式,便于数据传输,存储,交换. gson则是一种组件库,就是通过Gson我们可以把java中的对象(gson.toJson()),转换成Json字符串,当然反过来也是可以的(gson.fromJson); 2,代码 首先我们需要JSon和Gson这两个jar包 package com.json.dome; import java.util.ArrayList;import java.util.Lis

json和gson的区别

json是一种数据格式,便于数据传输.存储.交换gson是一种组件库,可以把java对象数据转换成json数据格式 GSON简单处理JSON json格式经常需要用到,google提供了一个处理json的项目:GSON,能很方便的处理转换java对象和JSON表达.他不需要使用annotation,也不需要对象的源代码就能使用.以字符串为例介绍:1 .构造json 字符串 例如要传送json格式的字符串 String appID = req.getParameter("appID");

json与gson互转

导入gson.jar bean: public class Person { private String name; private int age; /** * @return the name */ public String getName() { return name; } /** * @param name *            the name to set */ public void setName(String name) { this.name = name; } /

JS解析Json 数据并跳转到一个新页面,取消A 标签跳转

JS解析Json 数据并跳转到一个新页面,代码如下 $.getJSON("http://api.cn.abb.com/common/api/staff/employee/" + obj.id, function (result) { window.open("https://abb-my.sharepoint.com/_layouts/15/me.aspx?p=" + result.Email, "_blank") }); 取消A 标签跳转 &l

Swifter.Json -- 在 .Net 平台上的一个功能强大,简单易用,稳定又不失高性能的 JSON 序列化和反序列化工具。

Swifter.Json Github Wiki 在 .Net 平台上的一个功能强大,简单易用,稳定又不失高性能的 JSON 序列化和反序列化工具. Swifter.Json 已经经过了大量测试和线上项目中运行许久来确保它的稳定性. 特性 1: 支持 .Net 上绝大多是的数据类型,且轻松扩展:包括但不限于:实体,字典,集合,迭代器,数据读取器和表格. 2: 支持 .Net 我已知的大多数平台,包括但不限于:.Net Framework 2.0+, .Net Core 2.0+, .Net St

Android JSON、GSON、FastJson的封装与解析

声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种数据解析的DEMO都用到了下面这个Person类,贴出来: 1 public class Person { 2 private String name; 3 private int age; 4 private String address; 5 6 public Person() { 7 8 }

大话JSON之Gson解析JSON

(三)解析Json数组(多条Json数据) 比如有如下Json数据: [{'name':'John', 'grade':[{'course':'English','score':100},{'course':'Math','score':78}]},  //注:Json数组最外层一定要加"[]" {'name':'Tom', 'grade':[{'course':'English','score':86},{'course':'Math','score':90}]}] 如何处理这样的数

JSON 之GSON 解析

一. 谷歌GSON这个Java类库可以把Java对象转换成JSON,也可以把JSON字符串转换成一个相等的Java对象.Gson支持任意复杂Java对象包括没有源代码的对象. 二.Gson解析Json步骤  A.服务器端将数据转换成json字符串    首先.服务器端项目要导入Gson的jar包到BuiltPath中.( Gson的jar:http://code.google.com/p/google-gson/   我们还可以下载gson的帮助文档) 然后将数据转为json字符串,核心函数是:

关于JSON的GSON

下面这篇是从csdn上复制黏贴过来的,感觉写的挺清楚的 Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. jar和源码下载地址: http://code.google.com/p/google-gson/downloads/list [java] view plaincopy public class Student { private int id; private St