锘??xml version="1.0" encoding="utf-8" standalone="yes"?>午夜亚洲乱码伦小说区69堂,狼人大香伊蕉国产WWW亚洲,小说专区亚洲春色校园http://www.tkk7.com/Good-Game/category/25648.htmlzh-cnMon, 08 Oct 2007 19:10:27 GMTMon, 08 Oct 2007 19:10:27 GMT60json 嫻嬭瘯http://www.tkk7.com/Good-Game/archive/2007/10/08/151071.htmlG_GG_GMon, 08 Oct 2007 07:08:00 GMThttp://www.tkk7.com/Good-Game/archive/2007/10/08/151071.htmlhttp://www.tkk7.com/Good-Game/comments/151071.htmlhttp://www.tkk7.com/Good-Game/archive/2007/10/08/151071.html#Feedback0http://www.tkk7.com/Good-Game/comments/commentRss/151071.htmlhttp://www.tkk7.com/Good-Game/services/trackbacks/151071.html 鍙傜収錛?/font>
聽聽聽 http://json-lib.sourceforge.net/usage.html

鍏?json <-> object
package聽test.json;

import聽java.util.ArrayList;
import聽java.util.HashMap;
import聽java.util.List;
import聽java.util.Map;

import聽org.apache.commons.beanutils.PropertyUtils;

import聽com.jjm.viewBean.reportTableBean;

import聽net.sf.json.JSONArray;
import聽net.sf.json.JSONFunction;
import聽net.sf.json.JSONObject;

import聽junit.framework.TestCase;

publicclass聽JsonTest聽extends聽TestCase聽{

//object聽to聽json聽************************************************************
聽聽聽聽publicvoid聽testList(){
聽聽聽聽聽聽聽聽
boolean[]聽boolArray聽=newboolean[]{true,false,true};聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONArray聽jsonArray1聽
=聽JSONArray.fromObject(聽boolArray聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(聽jsonArray1聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
//聽prints聽[true,false,true]聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽List聽list聽
=new聽ArrayList();聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽list.add(聽
"first"聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽list.add(聽
"second"聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONArray聽jsonArray2聽
=聽JSONArray.fromObject(聽list聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(聽jsonArray2聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
//聽prints聽["first","second"]聽聽

聽聽聽聽聽聽聽聽聽聽聽聽JSONArray聽jsonArray3聽
=聽JSONArray.fromObject(聽"['json','is','easy']"聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(聽jsonArray3聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
//聽prints聽["json","is","easy"]聽聽聽
聽聽聽聽}
聽聽聽聽
聽聽聽聽
publicvoid聽testMap(){
聽聽聽聽聽聽聽聽Map聽map聽
=new聽HashMap();聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"name",聽"json"聽);聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"bool",聽Boolean.TRUE聽);聽聽聽
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"int",聽new聽Integer(1)聽);聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"arr",聽new聽String[]{"a","b"}聽);聽聽聽
聽聽聽聽聽聽聽聽聽map.put(聽
"func",聽"function(i){聽return聽this.arr[i];聽}"聽);聽聽聽
聽聽聽聽聽聽聽聽聽JSONObject聽json聽
=聽JSONObject.fromObject(聽map聽);聽聽聽
聽聽聽聽聽聽聽聽聽System.out.println(聽json聽);聽聽聽
聽聽聽聽聽聽聽聽聽
//{"func":function(i){聽return聽this.arr[i];聽},"arr":["a","b"],"int":1,"name":"json","bool":true}
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽Bean.java聽
聽聽聽聽聽聽聽聽private聽String聽name聽=聽"json";聽聽聽
聽聽聽聽聽聽聽聽private聽int聽pojoId聽=聽1;聽聽聽
聽聽聽聽聽聽聽聽private聽char[]聽options聽=聽new聽char[]{'a','f'};聽聽聽
聽聽聽聽聽聽聽聽private聽String聽func1聽=聽"function(i){聽return聽this.options[i];聽}";聽聽聽
聽聽聽聽聽聽聽聽private聽JSONFunction聽func2聽=聽new聽JSONFunction(new聽String[]{"i"},"return聽this.options[i];");
聽聽聽聽
*/
聽聽聽聽聽
publicvoid聽testBean(){
聽聽聽聽聽聽聽聽聽JSONObject聽jsonObject聽
=聽JSONObject.fromObject(聽new聽JsonBean()聽);聽聽聽
聽聽聽聽聽聽聽聽聽System.out.println(聽jsonObject聽);聽聽聽
聽聽聽聽聽聽聽聽聽
//{"func1":function(i){聽return聽this.options[i];聽},"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){聽return聽this.options[i];聽}}聽聽
聽聽聽聽聽}
聽聽聽聽聽
聽聽聽聽聽
/**
聽聽聽聽聽聽*聽private聽int聽row聽;
聽聽聽聽聽聽聽聽聽聽private聽int聽col聽;
聽聽聽聽聽聽聽聽聽聽private聽String聽value聽;
聽聽聽聽聽聽*
聽聽聽聽聽聽
*/
聽聽聽聽聽
publicvoid聽testBeans(){
聽聽聽聽聽聽聽聽聽List聽list聽
=new聽ArrayList();
聽聽聽聽聽聽聽聽聽JsonBean2聽jb1聽
=new聽JsonBean2();
聽聽聽聽聽聽聽聽聽jb1.setCol(
1);
聽聽聽聽聽聽聽聽聽jb1.setRow(
1);
聽聽聽聽聽聽聽聽聽jb1.setValue(
"xx");
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽JsonBean2聽jb2聽
=new聽JsonBean2();
聽聽聽聽聽聽聽聽聽jb2.setCol(
2);
聽聽聽聽聽聽聽聽聽jb2.setRow(
2);
聽聽聽聽聽聽聽聽聽jb2.setValue(
"");
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽list.add(jb1);
聽聽聽聽聽聽聽聽聽list.add(jb2);
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽JSONArray聽ja聽
=聽JSONArray.fromObject(list);
聽聽聽聽聽聽聽聽聽System.out.println(聽ja.toString()聽);
聽聽聽聽聽聽聽聽聽
//[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}]
聽聽聽聽聽}
聽聽聽聽聽
聽聽聽聽聽

//聽聽聽聽json聽聽to聽object聽************************************************************聽聽聽聽聽
聽聽聽聽聽
聽聽聽聽聽
publicvoid聽testJsonBeanUtil()throws聽Exception{
聽聽聽聽聽聽聽聽聽聽聽聽聽String聽json聽
="{name=\"json\",bool:true,int:1,double:2.2,func:function(a){聽return聽a;聽},array:[1,2]}";聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONObject聽jsonObject聽
=聽JSONObject.fromString(json);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽Object聽bean聽
=聽JSONObject.toBean(聽jsonObject聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"name"聽),聽PropertyUtils.getProperty(聽bean,聽"name"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"bool"聽),聽PropertyUtils.getProperty(聽bean,聽"bool"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"int"聽),聽PropertyUtils.getProperty(聽bean,聽"int"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"double"聽),聽PropertyUtils.getProperty(聽bean,聽"double"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"func"聽),聽PropertyUtils.getProperty(聽bean,聽"func"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽List聽expected聽
=聽JSONArray.toList(聽jsonObject.getJSONArray(聽"array"聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽expected,聽(List)聽PropertyUtils.getProperty(聽bean,聽
"array"聽)聽);聽聽
聽聽聽聽聽}
聽聽聽聽聽
聽聽聽聽聽
publicvoid聽testJsonBean(){
聽聽聽聽聽聽聽聽聽聽聽聽聽String聽json聽
="{\"value\":\"xx\",\"row\":1,\"col\":1}";聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽JSONObject聽jsonObject聽
=聽JSONObject.fromString(json);
聽聽聽聽聽聽聽聽聽聽聽聽JsonBean2聽bean聽
=聽(JsonBean2)聽JSONObject.toBean(聽jsonObject,聽JsonBean2.class聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"col"聽),new聽Integer(聽bean.getCol())聽聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"row"聽),聽new聽Integer(聽bean.getRow()聽)聽);聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽assertEquals(聽jsonObject.get(聽
"value"聽),聽bean.getValue()聽);聽聽
聽聽聽聽聽}
}聽聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽 聽聽聽


json <-> xml
JSON to XML
  1. JSONObject聽json聽=聽new聽JSONObject(聽true聽);聽聽
  2. String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
  1. <oclass="object"null="true">聽聽
  2. 聽聽聽聽聽聽
  1. JSONObject聽json聽=聽JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");聽聽
  2. String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
  1. <oclass="object">聽聽
  2. 聽聽聽<nametype="string">json</name>聽聽
  3. 聽聽聽<booltype="boolean">true</bool>聽聽
  4. 聽聽聽<inttype="number">1</int>聽聽
  5. </o>聽聽
  1. JSONArray聽json聽=聽JSONArray.fromObject("[1,2,3]");聽聽
  2. String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
  1. <aclass="array"<聽聽
  2. 聽聽聽<etype="number">1</e>聽聽
  3. 聽聽聽<etype="number">2</e>聽聽
  4. 聽聽聽<etype="number">3</e>聽聽
  5. </a>聽聽
xml to json
  1. <aclass="array">聽聽
  2. 聽聽<etype="function"params="i,j">聽聽
  3. 聽聽聽聽聽聽return聽matrix[i][j];聽聽
  4. 聽聽</e>聽聽
  5. </a>聽聽
  1. JSONArray聽json聽=聽(JSONArray)聽XMLSerializer.read(聽xml聽);聽聽
  2. System.out.println(聽json聽);聽聽
  3. //聽prints聽[function(i,j){聽return聽matrix[i][j];聽}]




G_G 2007-10-08 15:08 鍙戣〃璇勮
]]>
json 浣跨敤http://www.tkk7.com/Good-Game/archive/2007/09/13/144785.htmlG_GG_GThu, 13 Sep 2007 03:36:00 GMThttp://www.tkk7.com/Good-Game/archive/2007/09/13/144785.htmlhttp://www.tkk7.com/Good-Game/comments/144785.htmlhttp://www.tkk7.com/Good-Game/archive/2007/09/13/144785.html#Feedback2http://www.tkk7.com/Good-Game/comments/commentRss/144785.htmlhttp://www.tkk7.com/Good-Game/services/trackbacks/144785.html

浣跨敤鍚庡ソ澶劼?br />聽聽聽 java 鍜?javascript 浣跨敤鍚岀粺涓瀵硅薄,璇硶聽. 鏁版嵁浠?sever 鍒?v灞偮犲拰聽v灞?鍒?sever 聽鏂逛究.
聽聽聽聽聽聽聽聽聽聽聽 綆鍗曡灝辨槸聽JBean 涓嶅仛淇敼鎷垮埌V灞?褰?JSBean (javascript 綾?聽涓敤

1.url 涔辯爜闂鍙傜収 Ajax uri 涔辯爜闂鎬葷粨(IE,FF)
2.浣跨敤jar鏄?jxpath ; json聽 ......(涓庣浉鍏?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽jxpath 鍙傜収 jxpath 瀛︿範絎旇
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽json 鍙傜収 浣跨敤json-lib

渚嬮璇存槑 鏁版嵁 name,avg 鍦ㄩ氳繃 ajax json 鍚?avg +1 鍐嶅睍鐜板埌欏甸潰
鏈〉闇瑕?json.js 涓嬭澆鍒?http://www.json.org/json.js

<% @聽page聽pageEncoding = " GBK " %>
<% @聽page聽contentType = " text/html;聽charset=GBK " %> 聽聽
< html >
聽聽
< head >
聽聽聽聽
< title > json.html </ title >
聽聽聽聽
聽聽聽聽
< meta聽 http-equiv ="keywords" 聽content ="keyword1,keyword2,keyword3" >
聽聽聽聽
< SCRIPT聽 src ="../js/json.js" ></ SCRIPT >
聽聽聽聽
< script聽 language ="javascript" 聽type ="text/javascript" >
聽聽聽聽
var 聽request聽 = false ;
聽聽聽聽
聽 // javascript 聽Ajax聽 娌′粈涔堝ソ璇寸殑 榪欏彲浠ョ敤 prototype prototype.js 鐨勭悊瑙?/font>聽聽,dojo聽dojo聽 絳?ajax
聽 //鏈緥聽涓烘柟渚跨洿鎺ュ啓浜?^_^

聽聽聽聽
function 聽getOpen(){聽聽聽聽聽聽
聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽request聽
= new 聽XMLHttpRequest();
聽聽聽聽聽聽聽}聽
catch 聽(trymicrosoft)聽{
聽聽聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽聽聽request聽
= new 聽ActiveXObject( " Msxml2.XMLHTTP " );
聽聽聽聽聽聽聽聽聽}聽
catch 聽(othermicrosoft)聽{
聽聽聽聽聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽request聽
= new 聽ActiveXObject( " Microsoft.XMLHTTP " );
聽聽聽聽聽聽聽聽聽聽聽}聽
catch 聽(failed)聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽request聽
= false ;
聽聽聽聽聽聽聽聽聽聽聽}聽聽
聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽}
聽聽聽聽}聽聽聽
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽
聽聽聽聽聽聽
function 聽getCustomerInfo()聽{
聽聽聽聽聽聽getOpen();
聽聽聽聽聽聽聽
if 聽( ! request)
聽聽聽聽聽聽聽聽聽alert(
" Error聽initializing聽XMLHttpRequest! " );
聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽 //榪欓氳繃 url 鎶婃暟鎹紶緇?server聽
聽聽聽聽聽聽 //鏁版嵁鏉ユ簮 javascript 綾?灝變笅鏂?DBdata
聽聽聽聽 string:聽name:鎴戝悕瀛梌_^聽聽,聽 int:聽avg:騫撮緞^_^
聽聽聽聽聽聽聽聽聽
var 聽url聽 = " /json/json?jsonStr= " + 聽( new 聽DBdata()).toJSONString()聽;
聽聽聽聽聽聽聽聽聽request.open(
" GET " ,聽url,聽 true );
聽聽聽聽聽聽聽聽聽request.send(
null );
聽聽聽聽聽聽聽聽聽request.onreadystatechange聽
= 聽updatePage;
聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽
聽聽聽聽聽聽 //聽ajax 澶勭悊聽鏁版嵁鍚庤繑鍥炵殑聽緇撴灉聽
聽聽聽聽聽 // 騫撮緞 +1聽騫惰緭鍏ュ埌 杈撳叆妗嗕腑
聽聽聽聽聽聽聽
function 聽updatePage(){
聽聽聽聽聽聽聽
if 聽(request.readyState聽 == 4 )聽
聽聽聽聽聽聽聽聽聽聽聽
if 聽(request.status聽 == 200 ){聽
聽聽聽聽聽聽聽聽聽聽聽 //寰楀埌 json str
聽聽聽聽聽聽聽聽聽聽聽聽聽
var 聽jss聽 = 聽request.responseText;
聽聽聽聽聽聽聽聽聽聽聽 //鍔犺澆鍒?javascript 綾諱腑 string -> jsBean
聽聽聽聽聽聽聽聽聽聽聽聽聽
var 聽jsobj聽 = 聽eval('('聽 + 聽jss聽 + 聽')');
聽聽聽聽聽聽聽聽聽聽聽聽 //浣跨敤鍜?java瀵硅薄涓鏍?^_^
聽聽聽聽聽聽聽聽聽聽聽聽聽document.getElementById('xx').value聽
= jsobj.name + ':' + jsobj.avg聽;
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽}
聽聽聽聽
//鏁版嵁鏉ユ簮
聽聽聽聽聽
function 聽DBdata(){
聽聽聽聽聽聽聽聽聽
this .name聽 = 聽'鍒樺嚡姣?;
聽聽聽聽聽聽聽聽聽
this .avg = 23 ;聽
聽聽聽聽聽聽聽聽聽
this .init = function (){
聽聽聽聽聽聽聽聽聽聽聽聽聽alert('鍛靛懙');
聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽}
</ script >
聽聽
</ head >
聽聽
< body聽 onload ="" >
聽聽聽聽聽聽
< INPUT聽 id ='xx'聽 type ="text" >
聽聽聽聽聽聽
< INPUT聽 id ='x'聽 type ="button" 聽onclick ="getCustomerInfo()" 聽value ="go" >
聽聽
</ body >
</ html >

涓轟簡鏂逛究鏄庝簡鎴慾ava鏂瑰氨浣跨敤浜?server
package聽servlet;

import聽java.io.IOException;
import聽java.io.PrintWriter;

import聽javax.servlet.ServletException;
import聽javax.servlet.http.HttpServlet;
import聽javax.servlet.http.HttpServletRequest;
import聽javax.servlet.http.HttpServletResponse;

import聽org.apache.commons.jxpath.JXPathContext;

import聽net.sf.json.JSONObject;


publicclass聽Json聽extends聽HttpServlet聽{
聽聽聽聽
publicvoid聽doGet(HttpServletRequest聽req,HttpServletResponse聽rpo)throws聽ServletException,IOException{
聽聽聽聽聽聽聽聽rpo.setCharacterEncoding(
"GBK");
聽聽聽聽聽聽聽聽req.setCharacterEncoding(
"GBK");
聽聽聽聽聽聽聽聽rpo.setContentType(
"text/html;聽charset=GBK");
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽PrintWriter聽out聽
=聽rpo.getWriter()聽;
聽聽聽聽聽聽聽
聽聽聽 聽聽聽 //寰楀埌 url 浼犲叆鏁版嵁
聽聽聽聽聽聽聽聽String聽str聽
=聽req.getParameter("jsonStr")聽;
聽聽聽 聽聽//java 鏂?string -> javaBean
聽聽聽聽聽聽聽聽JSONObject聽jso聽
=聽JSONObject.fromString(str);
聽聽聽 聽聽聽 //javaBean 浣跨敤jxpathcontxt瑙h鏇存柟渚?^_^
聽聽聽聽聽聽聽 //鍏跺疄jso涓槸浠?map 褰㈠紡瀛樺尯鐨?鏈夊叴瓚g殑鍙互鑷繁鍔ㄦ墜鍐欎笅鍝?/font>

聽聽聽聽聽聽聽聽JXPathContext聽jx聽
=聽JXPathContext.newContext(jso);
聽聽聽聽聽聽聽聽
try聽{
聽聽聽 聽聽 聽聽 聽聽 //jxpath濂藉鏉ヤ簡 avg + 1
聽聽聽聽聽聽聽聽聽聽聽聽jx.setValue(
"./avg",聽jx.getValue("./avg聽+聽1聽")聽);
聽聽聽聽聽聽聽聽}聽
catch聽(Exception聽e)聽{e.printStackTrace();}
聽聽聽 聽聽聽
聽聽聽 聽聽 //浠?jsonString 浼犲嚭
聽聽聽聽聽聽聽聽out.print(jso.toString());

聽聽聽聽}
}

web.xml錛堝ソ璞℃湁鐐瑰鍢翠簡 鍝堝搱 鏂逛究涓嬪叆闂ㄤ漢浜嗭級
聽聽聽聽<servlet>
聽聽聽聽聽聽聽聽
<servlet-name>json</servlet-name>
聽聽聽聽聽聽聽聽
<servlet-class>servlet.Json</servlet-class>
聽聽聽聽
</servlet>
聽聽聽聽
<servlet-mapping>
聽聽聽聽聽聽聽聽
<servlet-name>json</servlet-name>
聽聽聽聽聽聽聽聽
<url-pattern>/json</url-pattern>
聽聽聽聽
</servlet-mapping>





G_G 2007-09-13 11:36 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 免费人成网站7777视频| 亚洲精品视频免费看| 国产精品免费看久久久无码| 亚洲AV无码成人专区| 天天影院成人免费观看| 91嫩草私人成人亚洲影院| 久久免费看少妇高潮V片特黄| 久久久久久久综合日本亚洲 | 最近免费视频中文字幕大全| 亚洲av丰满熟妇在线播放| 鲁大师在线影院免费观看| 亚洲视频在线免费播放| 和日本免费不卡在线v| 亚洲日产乱码一二三区别| www.亚洲色图| a级大片免费观看| 亚洲国产成+人+综合| 午夜一级毛片免费视频| 国产亚洲综合久久| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲综合小说久久另类区| 最近最新MV在线观看免费高清| 亚洲AV无码一区二区三区电影 | 国产成人精品日本亚洲专区6| 女人张开腿等男人桶免费视频 | 中文成人久久久久影院免费观看| 亚洲一区二区影院| 日韩在线视频免费看| 大妹子影视剧在线观看全集免费 | 亚洲日本天堂在线| 国产L精品国产亚洲区久久 | 亚洲AV色吊丝无码| 亚洲AV伊人久久青青草原| 东方aⅴ免费观看久久av| 亚洲国产精品成人精品软件| 国产精品无码一二区免费| 国产免费一区二区三区不卡| 亚洲av专区无码观看精品天堂 | 亚洲国产成人五月综合网| 免费在线看黄的网站| 亚洲欧洲日本在线观看|