본 글에서는 springmvc의 json 데이터 상호작용 컨트롤러 방식을 주로 소개한다. 컨트롤러 방식의 반환값은 간단한 타입으로, 필요한 친구들이 참고할 수 있다.
컨트롤러 메소드의 반환 값은 String과 같은 간단한 유형입니다. json과 상호 작용하는 방법은 무엇입니까?
@RequestBody 사용
예를 들어 코드는 다음과 같습니다.
@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8") @ResponseBody public String ceshijson(@RequestBody String channelId) throws IOException{ return channelId;
코드가 위와 같은 상황이라면 , 프런트 데스크에서 json을 보냅니다. @RequestBody를 사용할 때 이렇게 작성해야 합니다(작성 방법은 다양하니 그냥 사용하세요)
function channel(){ //先获取选中的值 var channelId = $("#channelId option:selected").val(); //来判断发送的链接 if(channelId ==2){ $.ajax({ url:"ceshijson", type:"post", dataType:'json', contentType:'application/json;charset=utf-8', data:JSON.stringify({'channelId':channelId}), success:function(data){ alert(data.channelId); }, error:function(XMLHttpRequest, textStatus, errorThrown){ alert("Error") alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); } }); } }
여기서 특히 주의해야 할 점은 이전에 강조한 것처럼 기사에 따르면 @RequestBody를 사용하는 경우 json String으로 데이터를 수신하려면 String ChannelId가 필요합니다. 즉, 데이터가 data:{'channelId':channelId}와 같이 기록되면 잘못된 것입니다. jsonobject 형태이기 때문이죠.
JSON.stringify() 함수를 사용하지 않으려면 문자열을 직접 연결하세요.
data:'{"channelId":'+channelId+'}'
또한 채널 ID는 큰따옴표로 묶여 있습니다. 이는 json 구문 규칙이므로 작은따옴표로 쓸 수 없습니다. 작은따옴표로 변경합니다. 즉,
** 잘못된 쓰기
data:"{'channelId':"+channelId+"}"
이 형식은 백엔드로 전달할 수 있지만 백엔드는 정의되지 않습니다. 즉, key를 큰따옴표로 묶어야 합니다.
@RequestBody를 사용하지 마세요
@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8") @ResponseBody public String ceshijson(String channelId) throws IOException{ Map<String,Object> map = new HashMap<String,Object>(); map.put("channelId", channelId); ObjectMapper mapper = new ObjectMapper(); channelId = mapper.writeValueAsString(map); return channelId; }
포그라운드 코드
$.ajax({ url:"ceshijson", type:"post", dataType:'json', //contentType:'application/json;charset=utf-8', data:"channelId="+channelId, success:function(data){ alert(data); }, error:function(XMLHttpRequest, textStatus, errorThrown){ alert("Error") alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); } });
이 메소드는 ObjectMapper의 writeValueAsString을 사용하여 Java 객체를 json 문자열로 변환합니다.
요약: 이 방법은 일반적으로 이런 방식으로 데이터를 수신하지 않기 때문에 실제로는 큰 실용적인 의미가 없습니다. 그냥 이해하세요!
【관련 추천】
1. 특별 추천: "php Programmer Toolbox" V0.1 버전 다운로드
위 내용은 컨트롤러 메서드의 반환 값이 단순 유형인 경우 json과 상호 작용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!