锘??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 GMT60- json 嫻嬭瘯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;
public聽class聽JsonTest聽extends聽TestCase聽{
//聽object聽to聽json聽************************************************************
聽聽聽聽public聽void聽testList(){
聽聽聽聽聽聽聽聽boolean[]聽boolArray聽=聽new聽boolean[]{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"]聽聽聽
聽聽聽聽}
聽聽聽聽
聽聽聽聽public聽void聽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];");
聽聽聽聽*/
聽聽聽聽聽public聽void聽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聽;
聽聽聽聽聽聽*
聽聽聽聽聽聽*/
聽聽聽聽聽public聽void聽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聽************************************************************聽聽聽聽聽
聽聽聽聽聽
聽聽聽聽聽public聽void聽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"聽)聽);聽聽
聽聽聽聽聽}
聽聽聽聽聽
聽聽聽聽聽public聽void聽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- JSONObject聽json聽=聽new聽JSONObject(聽true聽);聽聽
- String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
| - <o聽class="object"聽null="true">聽聽
- 聽聽聽聽聽聽
|
- JSONObject聽json聽=聽JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");聽聽
- String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
| - <o聽class="object">聽聽
- 聽聽聽<name聽type="string">json</name>聽聽
- 聽聽聽<bool聽type="boolean">true</bool>聽聽
- 聽聽聽<int聽type="number">1</int>聽聽
- </o>聽聽
|
- JSONArray聽json聽=聽JSONArray.fromObject("[1,2,3]");聽聽
- String聽xml聽=聽XMLSerializer.write(聽json聽);聽聽
| - <a聽class="array"<聽聽
- 聽聽聽<e聽type="number">1</e>聽聽
- 聽聽聽<e聽type="number">2</e>聽聽
- 聽聽聽<e聽type="number">3</e>聽聽
- </a>聽聽
|
xml to json
- <a聽class="array">聽聽
- 聽聽<e聽type="function"聽params="i,j">聽聽
- 聽聽聽聽聽聽return聽matrix[i][j];聽聽
- 聽聽</e>聽聽
- </a>聽聽
- JSONArray聽json聽=聽(JSONArray)聽XMLSerializer.read(聽xml聽);聽聽
- System.out.println(聽json聽);聽聽
- 聽

]]> - 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;
public聽class聽Json聽extends聽HttpServlet聽{
聽聽聽聽public聽void聽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>

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