오늘은 Json에 대해 조금 배웠습니다. JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다. 인간이 읽고 쓰기가 쉽습니다. 기계가 구문 분석하고 생성하는 것도 쉽습니다. JSON은 완전히 언어 독립적인 텍스트 형식을 사용하지만 C 언어 계열(C, C, C#, Java, JavaScript, Perl, Python 등 포함)과 유사한 규칙도 사용합니다. 이러한 속성은 JSON을 이상적인 데이터 교환 언어로 만듭니다.
JSON은 두 가지 구조로 구성됩니다.
이름/값 쌍의 모음입니다. 다른 언어에서는 객체, 레코드, 구조체, 사전, 해시 테이블, 키 목록 또는 연관 배열로 이해됩니다.
순서가 지정된 값 목록입니다. 대부분의 언어에서는 배열로 이해됩니다.
일반적인 데이터 구조입니다. 실제로 대부분의 현대 컴퓨터 언어는 어떤 형태로든 이를 지원합니다. 이를 통해 이러한 구조를 기반으로 하는 프로그래밍 언어 간에 데이터 형식을 교환할 수 있습니다.
JSON의 형식은 다음과 같습니다.
객체는 이름/값 쌍의 순서가 지정되지 않은 모음입니다. 객체는 "{"(왼쪽 대괄호)로 시작하고 "}"(오른쪽 대괄호)로 끝납니다. 각 "이름" 뒤에는 ":"(콜론)이 옵니다. "이름/값" 쌍은 ","(쉼표)로 구분됩니다.
알겠습니다. 헛소리는 하지 말고 바로 예시를 들어보겠습니다! ! 이 작은 데모의 디자인은 다음과 같습니다. index.jsp 페이지는 서버 측 서블릿에 액세스합니다. 서블릿은 데이터를 index.jsp로 전송합니다. 하하. Json 형식으로 이 기사를 작성하겠습니다. 블로그는 청중을 속이는 것과 같습니다!
index.jsp 측 코드(먼저 쉽고 그 다음이 어려운 순서):
<%@ 페이지 언어="java" import="java.util.*" pageEncoding="UTF-8"%>% String path = request.getContextPath() String basePath = request.getScheme() " ://" request.getServerName() ":" request.getServerPort() 경로 "/"; %> < html>
내 JSP 'index.jsp' 시작 페이지 http-equiv="keywords" content="keyword1,keyword2,keyword3">
성 이름 td1"> < ;/td> ;td id="td0"> ;/테이블>
그런 다음 Person과 Address라는 두 개의 Bean 프로그램이 있습니다. 이 두 클래스는 주로 Json이 데이터를 전송하는 방식과 전송된 데이터의 형식을 더 잘 반영하기 위해 설계되었습니다
패키지 com.wk; 공개 클래스 개인 { 개인 문자열 firstName; 개인 문자열 성; 개인 주소 주소; 공공 사람() { 슈퍼(); } public Person(String firstName, String lastName, 주소 주소) { super(); this.firstName = 이름; this.lastName = 성; this.address = 주소; } 공개 문자열 getFirstName() { return firstName; } 공개 무효 setFirstName(String firstName) { this.firstName = firstName; } 공개 문자열 getLastName() { return lastName; } 공개 무효 setLastName(String lastName) { this.lastName = lastName; } 공개 주소 getAddress() { 반환 주소; } public void setAddress(주소 주소) { this.address = 주소; } } 패키지 com.wk; 공개 클래스 주소 { 개인 int id; 개인 문자열 세부사항; 공개 주소() { super(); } 공개 주소(int id, String Detail) { super(); this.id = 아이디; this.detail = 세부사항; } 공개 int getId() { 반환 ID; } 공개 무효 setId(int id) { this.id = id; } 공개 문자열 getDetail() { 세부정보 반환; } 공개 void setDetail(String Detail) { this.detail = 세부사항; } }
서블릿代码:
패키지 com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; java.util.List 가져오기; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; com.wk.Address를 가져옵니다. com.wk.Person 가져오기; 공용 클래스 PersonServlet은 HttpServlet을 확장합니다{ private static final long serialVersionUID = 1L; 정적 StringBuffer bf; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); 목록<사람> people = new ArrayList
(); PrintWriter 출력 = resp.getWriter();
사람 person1 = 새로운 사람(); 주소 a1 = 새 주소(); a1.setId(1); a1.setDetail("河북성"); person1.setFirstName("瓜"); person1.setLastName("傻"); person1.setAddress(a1); 사람.추가(사람1);
사람 person2 = 새로운 사람(); 주소 a2 = 새 주소(); a2.setId(2); a2.setDetail("江西省"); person2.setFirstName("蛋"); person2.setLastName("笨"); person2.setAddress(a2); people.add(person2);
사람 person3 = 새로운 사람(); 주소 a3 = 새 주소(); a3.setId(1); a3.setDetail("湖南省"); person3.setFirstName("痴"); person3.setLastName("백"); person3.setAddress(a3); people.add(person3);
bf = new StringBuffer();
/* 组装成json格式的字符串 * {"person":[ * {"firstname":"", "lastNmae":"", "address": {"id":"", "detail":"" }}, * ]} */ bf.append("{"person":["); for(사람 사람 : 사람) { bf.append("{"firstname":"").append(person.getFirstName()).append("","").append("lastname":""). 추가(person.getLastName()).append("","). append(""address":").append("{"id":"").append(person.getAddress().getId()).append("","").append("detail": "").append(person.getAddress().getDetail()).append(""").append("}},"); } //将最后一个逗号去掉 int length = bf.length(); String newStr = bf.substring(0, 길이-1); bf = 새로운 StringBuffer(); bf.append(newStr);
bf.append("]}"); out.println(bf); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); }
하단의 代码就是Jquery如何解析Json数据了,也是这一个데모 核心代码了:
$(document).ready(function() { $("table").css("border-color", "lightblue").css("border-style", "solid"); $("#head" ).css("Background-color", "lightblue"); $.ajax({ // 后台处理程序 url : "Json", // 数据发送方式 type : "post", // 接受数据格式 dataType : " json", timeout : 20000,// 设置请求超时时间(毫秒)。 // 请求成功后回调函数。 성공 : function(dataObj) { var member = eval(dataObj); // Alert(member.person[1] .firstname); $(dataObj.person).each(function(i, per) { $("#tr" i).find("#td0").html(per.lastname); $("#tr" i).find("#td1").html(per.firstname); $("#tr" i).find("#td2") .html(per.address.detail) }); ; });
再贴一个运行效果吧!!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
2024-10-22 09:46:29
2024-10-13 13:53:41
2024-10-12 12:15:51
2024-10-11 22:47:31
2024-10-11 19:36:51
2024-10-11 15:50:41
2024-10-11 15:07:41
2024-10-11 14:21:21
2024-10-11 12:59:11
2024-10-11 12:17:31