현재 json과 gson을 통해 레벨 연결 하단 목록 상자를 완성합니다

4298 단어 jsongson
현재 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 exception
			e.printStackTrace();
		}
		
	}

PS: json, gson의 차이점과 연계
1. json은 데이터 형식으로 데이터 전송, 저장, 교환에 편리하다. gson은 구성 요소 라이브러리로서 자바 대상 데이터를 json 데이터 형식으로 변환할 수 있다.
Gson은 String[] 그룹으로 직접 전환할 수 있고 OperConditions로 전환할 때도 json-lib보다 간단하다.
2. GSON은 JSON json 형식을 간단하게 처리하는 데 자주 필요합니다. 구글은 json을 처리하는 프로젝트를 제공했습니다. GSON은 자바 대상과 JSON 표현을 쉽게 처리할 수 있습니다.그는 annotation을 사용할 필요도 없고 대상의 원본 코드도 필요 없이 사용할 수 있다.문자열을 예로 들면 다음과 같다. (1) json 문자열을 구성한다. 예를 들어 json 형식을 전송할 문자열
4
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();

좋은 웹페이지 즐겨찾기