>  기사  >  웹 프론트엔드  >  Jquery 구문 분석 Json 형식 데이터 프로세스 code_jquery

Jquery 구문 분석 Json 형식 데이터 프로세스 code_jquery

WBOY
WBOY원래의
2016-05-16 16:33:181222검색

오늘은 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' 시작 페이지<meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="내 페이지입니다"> <!-- <link rel="stylesheet " type="text/css" href="styles.css" mce_href="styles.css"> --> <mce:script type="text/javascript" src="js/jquery-1.3.2 .js" mce_src="js/jquery-1.3.2.js"></mce:script> <mce:script type="text/javascript" src="js/login.js" mce_src="js /login.js"></mce:script> </head> <body> <table> <tr id="head"> <td>성</td> <td> 이름</td></td> <tr id="tr0"></td> td1"></td> <td id="td2"></td> </tr> <tr id="tr1"> <td id="td0">< ;/td> <td id="td1"></td> <tr id="tr2"> ;td id="td0"></td> <td id="td1"></td></td> ;/테이블></body><br> </div> <br> 그런 다음 Person과 Address라는 두 개의 Bean 프로그램이 있습니다. 이 두 클래스는 주로 Json이 데이터를 전송하는 방식과 전송된 데이터의 형식을 더 잘 반영하기 위해 설계되었습니다 <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="58090" class="copybut" id="copybut58090" onclick="doCopy('code58090')"><u>코드 복사</u></a></span> 코드는 다음과 같습니다.</div> <div class="codebody" id="code58090"> <br> 패키지 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 = 세부사항; } }<br> </div> <br> 서블릿代码: <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="36064" class="copybut" id="copybut36064" onclick="doCopy('code36064')"><u>复主代码</u></a></span> 代码如下:</div> <div class="codebody" id="code36064"> <br> 패키지 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<Person>(); PrintWriter 출력 = resp.getWriter();<br> 사람 person1 = 새로운 사람(); 주소 a1 = 새 주소(); a1.setId(1); a1.setDetail("河북성"); person1.setFirstName("瓜"); person1.setLastName("傻"); person1.setAddress(a1); 사람.추가(사람1);<br> 사람 person2 = 새로운 사람(); 주소 a2 = 새 주소(); a2.setId(2); a2.setDetail("江西省"); person2.setFirstName("蛋"); person2.setLastName("笨"); person2.setAddress(a2); people.add(person2);<br> 사람 person3 = 새로운 사람(); 주소 a3 = 새 주소(); a3.setId(1); a3.setDetail("湖南省"); person3.setFirstName("痴"); person3.setLastName("백"); person3.setAddress(a3); people.add(person3);<br> bf = new StringBuffer();<br> /* 组装成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); <br> bf.append("]}"); out.println(bf); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); }<br> </div> <br> 하단의 代码就是Jquery如何解析Json数据了,也是这一个데모 核心代码了: <p></p> <div class="codetitle"> <span><a style="CURSOR: pointer" data="75585" class="copybut" id="copybut75585" onclick="doCopy('code75585')"><u>复主代码</u></a></span> 代码如下:</div> <div class="codebody" id="code75585"> <br> $(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) }); ; });<br> </div> <br> 再贴一个运行效果吧!!</div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>성명:</span><div>본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.</div></div></div><div class="nphpSytBox"><span>이전 기사:<a class="dBlack" title="태그를 사용하여 URL 분석 URL example_javascript 기술을 자동으로 구문 분석합니다." href="http://m.php.cn/ko/faq/10606.html">태그를 사용하여 URL 분석 URL example_javascript 기술을 자동으로 구문 분석합니다.</a></span><span>다음 기사:<a class="dBlack" title="태그를 사용하여 URL 분석 URL example_javascript 기술을 자동으로 구문 분석합니다." href="http://m.php.cn/ko/faq/10608.html">태그를 사용하여 URL 분석 URL example_javascript 기술을 자동으로 구문 분석합니다.</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>관련 기사</h2><em><a href="http://m.php.cn/ko/article.html" class="bBlack"><i>더보기</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ko/faq/1609.html" title="Bootstrap 목록 그룹 구성 요소에 대한 심층 분석" class="aBlack">Bootstrap 목록 그룹 구성 요소에 대한 심층 분석</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/1640.html" title="JavaScript 함수 커링에 대한 자세한 설명" class="aBlack">JavaScript 함수 커링에 대한 자세한 설명</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/1949.html" title="JS 비밀번호 생성 및 강도 감지의 전체 예(데모 소스 코드 다운로드 포함)" class="aBlack">JS 비밀번호 생성 및 강도 감지의 전체 예(데모 소스 코드 다운로드 포함)</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/2248.html" title="Angularjs는 WeChat UI(weui)를 통합합니다." class="aBlack">Angularjs는 WeChat UI(weui)를 통합합니다.</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/2351.html" title="JavaScript를 사용하여 중국어 번체와 중국어 간체 간을 빠르게 전환하는 방법과 중국어 간체와 중국어 번체 간 전환을 지원하는 웹사이트의 요령_javascript 기술" class="aBlack">JavaScript를 사용하여 중국어 번체와 중국어 간체 간을 빠르게 전환하는 방법과 중국어 간체와 중국어 번체 간 전환을 지원하는 웹사이트의 요령_javascript 기술</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><div class="nphpFoot"><div class="nphpFootBg"><ul class="nphpFootMenu"><li><a href="http://m.php.cn/ko/"><b class="icon1"></b><p>집</p></a></li><li><a href="http://m.php.cn/ko/course.html"><b class="icon2"></b><p>강의</p></a></li><li><a href="http://m.php.cn/ko/wenda.html"><b class="icon4"></b><p>Q&A</p></a></li><li><a href="http://m.php.cn/ko/login"><b class="icon5"></b><p>나의</p></a></li><div class="clear"></div></ul></div></div><div class="nphpYouBox" style="display: none;"><div class="nphpYouBg"><div class="nphpYouTitle"><span onclick="$('.nphpYouBox').hide()"></span><a href="http://m.php.cn/ko/"></a><div class="clear"></div></div><ul class="nphpYouList"><li><a href="http://m.php.cn/ko/"><b class="icon1"></b><span>집</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/course.html"><b class="icon2"></b><span>강의</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/article.html"><b class="icon3"></b><span>기사</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/wenda.html"><b class="icon4"></b><span>Q&A</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/dic.html"><b class="icon6"></b><span>사전</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/course/type/99.html"><b class="icon7"></b><span>수동</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/xiazai/"><b class="icon8"></b><span>다운로드</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ko/faq/zt" title="주제"><b class="icon12"></b><span>주제</span><div class="clear"></div></a></li><div class="clear"></div></ul></div></div><div class="nphpDing" style="display: none;"><div class="nphpDinglogo"><a href="http://m.php.cn/ko/"></a></div><div class="nphpNavIn1"><div class="swiper-container nphpNavSwiper1"><div class="swiper-wrapper"><div class="swiper-slide"><a href="http://m.php.cn/ko/" >집</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/article.html" class="hover">기사</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/wenda.html" >Q&A</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/course.html" >강의</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/faq/zt" >주제</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/xiazai" >다운로드</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/game" >게임</a></div><div class="swiper-slide"><a href="http://m.php.cn/ko/dic.html" >사전</a></div><div class="clear"></div></div></div><div class="langadivs" ><a href="javascript:;" class="bg4 bglanguage"></a><div class="langadiv" ><a onclick="javascript:setlang('zh-cn');" class="language course-right-orders chooselan " href="javascript:;"><span>简体中文</span><span>(ZH-CN)</span></a><a onclick="javascript:setlang('en');" class="language course-right-orders chooselan " href="javascript:;"><span>English</span><span>(EN)</span></a><a onclick="javascript:setlang('zh-tw');" class="language course-right-orders chooselan " href="javascript:;"><span>繁体中文</span><span>(ZH-TW)</span></a><a onclick="javascript:setlang('ja');" class="language course-right-orders chooselan " href="javascript:;"><span>日本語</span><span>(JA)</span></a><a onclick="javascript:;" class="language course-right-orders chooselan chooselanguage" href="javascript:;"><span>한국어</span><span>(KO)</span></a><a onclick="javascript:setlang('ms');" class="language course-right-orders chooselan " href="javascript:;"><span>Melayu</span><span>(MS)</span></a><a onclick="javascript:setlang('fr');" class="language course-right-orders chooselan " href="javascript:;"><span>Français</span><span>(FR)</span></a><a onclick="javascript:setlang('de');" class="language course-right-orders chooselan " href="javascript:;"><span>Deutsch</span><span>(DE)</span></a></div></div><script> var swiper = new Swiper('.nphpNavSwiper1', { slidesPerView : 'auto', observer: true,//修改swiper自己或子元素时,自动初始化swiper observeParents: true,//修改swiper的父元素时,自动初始化swiper }); </script></div></div><!--顶部导航 end--><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>