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

2024-05-29 10:32

本文主要是介绍现在通过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><pre name="code" class="java"><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 exceptione.printStackTrace();}}

PS:json、gson 两者的区别和联系

1、 json是一种数据格式,便于数据传输、存储、交换
 gson是一种组件库,可以把java对象数据转换成json数据格式

 Gson可以直接转化成String[]数组,同时转化OperConditions时也比json-lib简单。

2、GSON简单处理JSON
json格式经常需要用到,google提供了一个处理json的项目:GSON,能很方便的处理转换java对象和JSON表达。他不需要使用annotation,也不需要对象的源代码就能使用。
以字符串为例介绍:
(1)构造json 字符串
例如 要传送json格式的字符串

String appID = req.getParameter("appID");
String userID = req.getParameter("userID");
Map map = new HashMap();
map.put("appID", appID);
map.put("userID", userID);
Gson gson = new Gson();
String state = gson.toJson(map);
(2)解析json字符串
JsonParser jsonparer = new JsonParser();//初始化解析json格式的对象
String state = req.getParameter("state");
String appID = jsonparer.parse(state).getAsJsonObject().get("appID").getAsString();
String userID = jsonparer.parse(state).getAsJsonObject().get("userID").getAsString();


这篇关于现在通过json和gson来实现完成一个级联下拉列表框的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1013419

相关文章

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa

C#实现获得某个枚举的所有名称

《C#实现获得某个枚举的所有名称》这篇文章主要为大家详细介绍了C#如何实现获得某个枚举的所有名称,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... C#中获得某个枚举的所有名称using System;using System.Collections.Generic;usi

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

C# 读写ini文件操作实现

《C#读写ini文件操作实现》本文主要介绍了C#读写ini文件操作实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、INI文件结构二、读取INI文件中的数据在C#应用程序中,常将INI文件作为配置文件,用于存储应用程序的

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log