久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

Java 手動解析不帶引號的JSON字符串的操作

瀏覽:75日期:2022-08-22 15:04:16
1 需求說明

項目中遇到了一批不帶引號的類JSON格式的字符串:

{Name:Heal,Age:20,Tag:[Coding,Reading]}

需要將其解析成JSON對象, 然后插入到Elasticsearch中, 當作Object類型的對象存儲起來.

在對比了阿里的FastJson、Google的Gson, 沒找到想要的功能 ( 可能是博主不夠仔細, 有了解的童學留言告訴我下呀😛), 于是就自己寫了個工具類, 用來實現此需求.

如果是帶有引號的標準JSON字符串, 可直接通過上述2種工具進行解析, 使用方法可參考:

Java - 格式化輸出JSON字符串的兩種方式

2 解析代碼

2.1 實現思路

代碼的主要思路在注釋中都有說明, 主要思路是:

(1) 借助Stack統計字符串首尾的[]、{}符號 —— []代表List, {}代表Map;

(2) 使用String#subString()方法縮減已解析的字符串;

(3) 使用遞歸解析內部的List、Map對象;

(4) 為了便于處理, 最小的key-value都解析成String類型.

需要注意的是: 要解析的字符串內部不要存在無意義的{、}、[、]符號, 否則會導致解析發生異常.

—— 暫時沒想到好的兼容方法, 有想法的童學請直接留言.**

2.2 詳細代碼

package com.healchow.util;import java.security.InvalidParameterException;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Stack;/** * Java 解析不帶引號的JSON字符串 * * @author Heal Chow * @date 2019/08/13 11:36 */public class ParseJsonStrUtils { public static void main(String[] args) { // 帶引號的字符串, 會將字符串當作key-value的一部分, 因此這類字符串推薦使用fastJson、Gson等工具轉換 // 注意: String內部不要存在無意義的{、}、[、]符號 - 暫時沒想到好的兼容方法 /*String sourceStr = '{'_index':'book_shop',' + ''_id':'1',' + ''_source':{' +''name':'Thinking in Java [4th Edition]',' +''author':'[US] Bruce Eckel',' +''price':109.0,'date':'2007-06-01 00:00:00',' +''tags':['Java',['Programming']' + '}}';*/ // 不帶引號的字符串, 首尾多對[]、{}不影響解析 String sourceStr = '[[[{' + '{' +'Type:1,' +'StoragePath:[{Name:/image/2019-08-01/15.jpeg,DeviceID:4401120000130},{ShotTime:2019-08-01 14:44:24}],' +'Width:140' + '},' + '{' +'Type:2,StoragePath:9090/pic/2019_08_01/src.jpeg,' +'Inner:{DeviceID:44011200},' +'Test:[{ShotTime:2019-08-01 14:50:14}],' +'Width:5600}' + '}}]]]'; List<Map<String, Object>> jsonArray; Map<String, Object> jsonMap; Object obj = null; try { obj = parseJson(sourceStr); } catch (Exception e) { System.out.println('出錯啦: ' + e.getMessage()); e.printStackTrace(); } if (obj instanceof List) { jsonArray = (List<Map<String, Object>>) obj; System.out.println('解析生成了List對象: ' + jsonArray); } else if (obj instanceof Map) { jsonMap = (Map<String, Object>) obj; System.out.println('解析生成了Map對象: ' + jsonMap); } else { System.out.println('需要解析的字符串既不是JSON Array, 也不符合JSON Object!n原字符串: ' + sourceStr); } } /** * 解析 Json 格式的字符串, 封裝為 List 或 Map 并返回 * 注意: (1) key 和 value 不能含有 ',', key 中不能含有 ':' —— 要分別用 ',' 和 ':' 進行分隔 * (2) 要解析的字符串必須符合JSON對象的格式, 只對最外層的多層嵌套做了簡單的處理, * 復雜的如'{a:b},{x:y}'將不能完全識別 —— 正確的應該是'[{a:b},{x:y}]' * @param sourceStr 首尾被'[]'或'{}'包圍的字符串 * @return 生成的JsonObject */ public static Object parseJson(String sourceStr) throws InvalidParameterException { if (sourceStr == null || ''.equals(sourceStr)) { return sourceStr; } // 判斷字符串首尾有沒有多余的、相匹配的 '[]' 和 '{}' String parsedStr = simplifyStr(sourceStr, '[', ']'); parsedStr = simplifyStr(parsedStr, '{', '}'); // 借助棧來實現 '[]' 和 '{}' 的出入 Stack<String> leftSymbolStack = new Stack<>(); Stack<String> rightSymbolStack = new Stack<>(); if ((parsedStr.startsWith('[') && parsedStr.endsWith(']')) || (parsedStr.startsWith('{') && parsedStr.endsWith('}'))) { leftSymbolStack.push(parsedStr.substring(0, 1)); rightSymbolStack.push(parsedStr.substring(parsedStr.length() - 1)); parsedStr = parsedStr.substring(1, parsedStr.length() - 1); // parsedStr 內部還可能是連續的'{{}}' parsedStr = simplifyStr(parsedStr, '{', '}'); } else { throw new InvalidParameterException('要解析的字符串中存在不匹配的’[]’或’{}’, 請檢查!n原字符串為: ' + sourceStr); } // 保存解析的結果, jsonArray中可能只有String, 也可能含有Map<String, Object> List<Object> jsonArray = new ArrayList<>(); Map<String, Object> jsonMap = new HashMap<>(16); // 內部遍歷、解析 innerParseByLoop(parsedStr, leftSymbolStack, rightSymbolStack, jsonArray, jsonMap); // 判斷jsonArray是否為空 if (jsonArray.size() > 0) { return jsonArray; } else { return jsonMap; } } /** * 循環解析內部的List、Map對象 */ private static void innerParseByLoop(String parsedStr, Stack<String> leftSymbolStack, Stack<String> rightSymbolStack, List<Object> jsonArray, Map<String, Object> jsonMap) throws InvalidParameterException { if (parsedStr == null || parsedStr.equals('')) { return; } // 按照','分隔 String[] allKeyValues = parsedStr.split(','); if (allKeyValues.length > 0) { // 遍歷, 并按照':'分隔解析 out: for (String keyValue : allKeyValues) { // 如果keyValue中含有':', 說明該keyValue是List<Map>中的一個對象, 就需要確定第一個':'的位置 —— 可能存在多個':' int index = keyValue.indexOf(':'); if (index > 0) { // 判斷key是否仍然以'{'或'['開始, 如果是, 則壓棧 String key = keyValue.substring(0, index); while (key.startsWith('[') || key.startsWith('{')) { leftSymbolStack.push(key.substring(0, 1)); // 解析過的串要一直跟進 parsedStr = parsedStr.substring(1); key = key.substring(1); } // 判讀和value是否以'['開頭 —— 又是一個 List 對象 —— 遞歸解析 String value = keyValue.substring(index + 1); if (value.startsWith('[')) { int innerIndex = parsedStr.indexOf(']'); List<Object> innerList = (List<Object>) parseJson(parsedStr.substring(key.length() + 1, innerIndex + 1)); jsonMap.put(key, innerList); // 清除最后的']', 并判斷是否存在',' parsedStr = parsedStr.substring(innerIndex + 1); if (parsedStr.indexOf(',') == 0) { parsedStr = parsedStr.substring(1); } // 此內部存在對象, 內部的','已經解析完畢了, 要修正按照','切割的字符串數組, 并繼續遍歷 innerParseByLoop(parsedStr, leftSymbolStack, rightSymbolStack, jsonArray, jsonMap); break; } // 判讀和value是否以 '{' 開頭 —— 又是一個 Map 對象 —— 遞歸解析 else if (value.startsWith('{')) { int innerIndex = parsedStr.indexOf('}'); Map<String, Object> innerMap = (Map<String, Object>) parseJson(parsedStr.substring(key.length() + 1, innerIndex + 1)); jsonMap.put(key, innerMap); // 清除最后的'}', 并判斷是否存在',' parsedStr = parsedStr.substring(innerIndex + 1); if (parsedStr.indexOf(',') == 0) { parsedStr = parsedStr.substring(1); } // 此內部存在對象, 內部的','已經解析完畢了, 要修正按照','切割的字符串數組, 并繼續遍歷 innerParseByLoop(parsedStr, leftSymbolStack, rightSymbolStack, jsonArray, jsonMap); break; } // 最后判斷value尾部是否含有 ']' 或 '}' else { while (value.endsWith(']') || value.endsWith('}')) { // 最右側的字符 String right = value.substring(value.length() - 1); // 此時棧頂元素 String top = leftSymbolStack.peek(); // 如果有相匹配的, 則彈棧, 否則忽略 if (('}'.equals(right) && '{'.equals(top)) || (']'.equals(right) && '['.equals(top))) {leftSymbolStack.pop();value = value.substring(0, value.length() - 1);jsonMap.put(key, value);// 清除最后的'}', 并判斷是否存在','parsedStr = parsedStr.substring(key.length() + 1 + value.length() + 1);if (parsedStr.indexOf(',') == 0) { parsedStr = parsedStr.substring(1);}// 解析完成了一個對象, 則將該元素添加到List中, 并創建新的對象jsonArray.add(jsonMap);jsonMap = new HashMap<>(16);// 繼續進行外層的解析continue out; } // 如果都不匹配, 則有可能是源字符串的最后一個符號 else {rightSymbolStack.push(right);value = value.substring(0, value.length() - 1); } } jsonMap.put(key, value); int length = key.length() + value.length() + 2; if (parsedStr.length() > length) { parsedStr = parsedStr.substring(length); } else { parsedStr = ''; } } } // 如果keyValue中不含':', 說明該keyValue只是List<String>中的一個串, 而非List<Map>中的一個Map, 則直接將其添加到List中即可 else { jsonArray.add(keyValue); } } // 遍歷結束, 處理最后的符號問題 —— 判斷左右棧是否匹配 while (!leftSymbolStack.empty()) { if (leftSymbolStack.peek().equals('{') && parsedStr.equals('}')) { leftSymbolStack.pop(); } if (!rightSymbolStack.empty()) { if (leftSymbolStack.peek().equals('{') && rightSymbolStack.peek().equals('}')) { leftSymbolStack.pop(); rightSymbolStack.pop(); } else if (leftSymbolStack.peek().equals('[') && rightSymbolStack.peek().equals(']')) { leftSymbolStack.pop(); rightSymbolStack.pop(); } else { throw new InvalidParameterException('傳入的字符串中不能被解析成JSON對象!n原字符串為: ' + parsedStr); } } } } } /** * 判斷字符串首尾有沒有多余的、相匹配的 '[]' 和 '{}', 對其進行簡化 */ private static String simplifyStr(String sourceStr, String firstSymbol, String lastSymbol) { while (sourceStr.startsWith(firstSymbol) && sourceStr.endsWith(lastSymbol)) { String second = sourceStr.substring(1, 2); // 如果第二個仍然是'['或'{', 再判斷倒數第二個是不是']'或'}' —— 說明長度至少為3, 不會發生 IndexOutOfBoundsException if (second.equals(firstSymbol)) { String penultimate = sourceStr.substring(sourceStr.length() - 2, sourceStr.length() - 1); if (penultimate.equals(lastSymbol)) { // 縮短要解析的串 sourceStr = sourceStr.substring(1, sourceStr.length() - 1); } else { break; } } else { break; } } return sourceStr; }}

2.3 測試樣例

(1) 帶引號的測試:

// 測試字符串:String sourceStr = '{'_index':'book_shop',' + ''_id':'1',' + ''_source':{' + ''name':'Thinking in Java [4th Edition]',' + ''author':'[US] Bruce Eckel',' + ''price':109.0,'date':'2007-06-01 00:00:00',' + ''tags':['Java',['Programming']' + '}}';

解析結果為:

Java 手動解析不帶引號的JSON字符串的操作

(2) 不帶引號的測試:

// 測試字符串: String sourceStr = '[[[{' + '{' + 'Type:1,' + 'StoragePath:[{Name:/image/2019-08-01/15.jpeg,DeviceID:4401120000130},{ShotTime:2019-08-01 14:44:24}],' + 'Width:140' + '},' + '{' + 'Type:2,StoragePath:9090/pic/2019_08_01/src.jpeg,' + 'Inner:{DeviceID:44011200},' + 'Test:[{ShotTime:2019-08-01 14:50:14}],' + 'Width:5600}' + '}}]]]';

解析結果為:

Java 手動解析不帶引號的JSON字符串的操作

補充知識:將key名不帶雙引號的JSON字符串轉換成JSON對象的方法

根據json.org上面的描述,JSON對象是由對象成員組成,而成員是由key-value鍵值組成。

key值是一個字符串:

字符串由Unicode字符組成,用雙引號包圍,用反斜杠轉義。可以是單個字符。用法跟C或Java里的字符串的用法相似。

但是,在現實應用中,很少有程序員知道JSON里的key需要用雙引號包圍,因為大多數的瀏覽器里并不需要使用雙引號。所以,為什么多此一舉要多寫兩個雙引號呢?

規范的例子:

{'keyName' : 34}

不規范的例子:

{keyName : 34}

雖然在瀏覽器里使用不規范的、不使用雙引號的寫法在瀏覽器里不會出現問題,但并不代表你可以在其它地方不會遇到問題,比如,你有一個字符串:

//字符串格式

’{ keyName : 34 }’

你想把它轉換成JSON對象。把JSON字符串轉換成JSON對象,需要使用 JSON.parse()方法,對于上面的這種key名上不帶雙引號的的JSON字符串,使用JSON.parse()解析時會報錯,無法解析。這就成了一個很麻煩的問題。所以說,盡量使用規范的預防還是有好處的,盡管大多數時候你不會遇到問題。

那么,對于key名不帶雙引號的JSON字符串,如何將它轉換成JSON對象呢?

最直接的方法是手工給key名加上雙引號。

如果你不像手工添加,可以使用函數全文搜索追加雙引號,比如下面的這段代碼:

json_string.replace(/(s*?{s*?|s*?,s*?)([’'])?([a-zA-Z0-9]+)([’'])?:/g, ’$1'$3':’);

eval(’var json = new Object(’ + json_string + ’)’);

最后,最簡單的一種方法是直接用eval()運行它:

var obj = eval(’(’ + invalid_json + ’)’);

但這樣執行時,你需要理解執行的代碼是什么,因為如果它里面含有一些惡意程序,你這樣直接運行很可能引起安全問題。

以上這篇Java 手動解析不帶引號的JSON字符串的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 国产精品久久久久久久久久东京 | 羞羞视频免费在线观看 | 91视频在线| 亚洲一区二区在线视频 | 国产精品一区2区 | 日本爱爱| 激情一区| 99爱视频| 久久精品国产免费 | 国产精品久久久久久久久久三级 | 亚洲精品电影网在线观看 | 一区二区三区在线播放视频 | 久久一区 | 国产欧美精品一区aⅴ影院 毛片视频网站 | 午夜国产在线 | 亚洲一区二区三区四区五区中文 | 日韩精品中文字幕一区二区三区 | 国产精品午夜电影 | 国产精品美女视频一区二区三区 | 午夜电影网| www.色94色.com | 人人干在线视频 | 精品国模一区二区三区欧美 | 精品久久影院 | 久久久一区二区 | 亚洲精品视频区 | 成人免费在线观看视频 | 在线视频第一页 | 久久成人国产精品 | 中文在线a在线 | 国产乱淫av片 | 久久久www成人免费无遮挡大片 | 国产精品污www在线观看 | 精品一区久久 | 亚洲成人av在线 | 日韩视频免费 | 亚洲成人中文字幕 | 五月天婷婷丁香 | 91中文字幕| 久久久久久电影 | 精品亚洲一区二区三区四区五区 | 不卡欧美 | 久久白虎 | 成人免费视频观看视频 | 免费黄色av| 亚洲精品一区二区三区 | 亚洲视频在线看 | 国产精品视频 | 成人免费在线观看 | 欧洲尺码日本国产精品 | 中文字幕在线观看av | 精品视频免费在线 | 操老逼 | 国产成人精品一区 | 亚洲精品99 | 亚洲一区二区三区免费看 | 亚洲欧美一区二区三区在线 | av片网站| 一区在线视频 | 亚洲网站在线观看 | av影音资源| av一区二区三区四区 | 欧美第8页| 久久婷婷视频 | 一级片观看 | 亚洲国产成人精品女人 | 久久都是精品 | 91丝袜| 亚州成人| 欧美一区二区精品 | 欧美视频精品在线 | 日本二区在线播放 | 中文字幕亚洲在线观看 | 亚洲国产综合在线 | 亚洲电影免费 | 精品久久久久久亚洲精品 | 两性午夜视频 | 成人精品免费视频 | 成人久久久精品国产乱码一区二区 | 欧美激情亚洲 | 国产一区2区 | 欧美日韩中文 | 国产精品久久国产精品 | 亚洲区一区二 | 国产真实乱全部视频 | 国产视频久久久久久久 | 日韩高清不卡一区二区三区 | 欧美视频网站 | 免费成人在线观看视频 | 精品一区二区三区免费 | 免费视频二区 | www.日韩av.com| 国产成人精品一区二区三区四区 | 国产高清视频 | 国产精品毛片一区二区在线看 | 免费午夜视频 | 中国黄色在线视频 | 国户精品久久久久久久久久久不卡 | 一区二区三区视频在线播放 | www久久久 | 午夜精品一区二区三区四区 | 国产91久久精品一区二区 | 自拍视频在线播放 | 伊人久久国产 | www中文字幕| www91在线观看| 久久精品在线视频 | 日韩精品 | 精品视频一区二区三区四区 | av毛片| 一级毛片免费在线 | 日韩在线中文字幕 | 国产精品久久久久久久 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 毛片国产| 亚洲一区二区久久 | 欧美嘿咻 | 日韩在线免费 | 99热精品在线 | 青青草亚洲 | 国产精品久久久久久久久久久免费看 | 中国1级黄色片 | 中文字幕高清 | 日日操天天爽 | 国产视频一区二区 | 欧美精品久久久久久久久老牛影院 | 久久久久久久久一区 | 九九热精 | 日日操视频 | 亚洲精品福利网站 | 国产日韩一区二区 | 国产视频一区二区三区四区 | 色婷婷综合久久久中文字幕 | 欧美一区二区免费在线 | 日韩在线观看一区 | 亚洲 中文 欧美 日韩 在线观看 | 免费在线观看毛片网站 | 中文字幕一区二区三区精彩视频 | 日韩精品一区二区三区在线 | 国产免费自拍av | 91麻豆精品国产91久久久资源速度 | 欧美日韩在线观看中文字幕 | 成人av高清 | 欧美日韩在线精品 | 91国内精品久久 | 欧美极品视频 | 最近日韩中文字幕 | 亚洲自啪| 国产情侣一区二区三区 | 精品视频一区二区在线 | 国产精品视频免费 | 精品国产一区二区三区久久久蜜 | 国产一区二区三区在线免费 | 不卡日韩在线 | 国产欧美在线视频 | 国产精品亚洲a | 国产va| 日本免费一区二区在线观看 | 欧美成人性生活 | 欧洲一级毛片 | 欧美日韩精品在线观看 | 国产一区二区三区四区在线观看 | 久在草视频 | www.久久久| 国产欧美久久久久久 | 一区二区三区四区精品 | 欧日韩免费 | 综合久久综合 | 最新av网址大全 | 国产精品久久久久久av公交车 | 黄色天堂网 | 日韩欧美中字 | www.天天草| 欧美久久免费观看 | 91夜夜| 亚洲毛片网站 | 韩国精品一区 | 国产一区二区在线免费观看 | 看片一区 | 日韩欧美二区 | 超碰天堂 | 成人精品福利视频 | 久久久www | 免费看a| 草草草久久久 | 精品日韩一区二区三区 | 爱爱免费视频网站 | 国产主播久久 | 久久久久国产精品 | 成人精品视频一区二区三区 | 亚洲电影一区二区 | 在线手机电影 | 99福利视频 | 91精品国产乱码久久久久久久久 | 国产一区免费 | 在线中文字幕av | 叶山小百合av一区二区 | 成人av观看 | 欧美日韩国产综合在线 | 久久久久久亚洲国产 | 一级做a爰性色毛片免费1 | 欧美三级免费观看 | 成人在线观看一区 | 91精品国产欧美一区二区 | 一区二区av | 亚洲国产精品综合久久久 | 欧美精品一区在线发布 | 一区二区三区av | 欧美午夜视频 | 久久91久久久久麻豆精品 | 亚洲一区二区三区免费 | 中文字幕日韩一区 | 欧美一级一区 | 天天射欧美| 伊人一区二区三区 | 国产精品欧美一区二区三区 | 中文久久| 一级欧美一级日韩 | 亚洲成人精品久久 | 麻豆专区一区二区三区四区五区 | 亚洲精品在线网站 | 亚洲三区在线观看 | 九色在线播放 | 一区二区三区国产精品 | 四虎影院在线看 | 中国大陆高清aⅴ毛片 | 免费观看黄a一级视频 | 亚洲精品一区二区 | 操久在线| 久草院线| 日韩国产欧美精品 | 亚洲巨乳自拍在线视频 | 日韩中文一区二区三区 | 综合精品久久久 | 91精品在线播放 | 中文二区| 日韩精品一区二 | 中文字幕亚洲欧美日韩在线不卡 | 一级二级黄色大片 | 久久伊人在 | 日韩一区二区影视 | 亚洲免费在线看 | 欧美午夜一区二区三区免费大片 | 成人免费av| 久久全国免费视频 | 国产精品久久久久久久久久99 | 精品久久久久久国产 | 午夜精品久久 | 99久久综合精品五月天 | 国产精品一区二区在线观看 | 成年入口无限观看网站 | 91综合视频在线观看 | 超碰一区二区三区 | 精品毛片 | 久久久久一区二区三区 | 婷婷在线视频 | 成人国产免费视频 | 国产一区二区三区免费视频 | 欧美电影一区 | 国内精品视频一区 | 在线成人免费观看www | 欧美嘿咻 | 精品国产乱码久久久久久1区2区 | 国产妇女乱码一区二区三区 | av先锋资源| 黄色片网站在线免费观看 | 国产精品久久久久久亚洲调教 | 欧美区在线 | 久久国产精品免费一区二区三区 | 国产日韩精品视频 | 久久av综合网| 亚洲一区 中文字幕 | 婷婷中文字幕 | 日韩中文字幕一区 | 日本高清视频网站www | 亚洲精品午夜国产va久久成人 | 国产精品中文字幕在线播放 | 国产综合一区二区 | 色999精品 | 一区二区三区不卡视频 | 国产成人av在线播放 | 天天澡天天狠天天天做 | 午夜精品一区二区三区在线视频 | 成人网av| 91小视频网站 | 免费日本视频 | 亚洲欧洲免费视频 | 亚洲精品一区二区在线观看 | 亚州中文字幕 | 精品国产髙清在线看国产毛片 | а_天堂中文最新版地址 | 久久久资源| 91精品国产综合久久久久久丝袜 | 国产精品欧美一区二区 | 国产精品久久久久久久久久三级 | 精品国产不卡一区二区三区 | 黑人精品视频 | 精品2区 | 91在线免费观看 | 狠狠综合久久av一区二区老牛 | 国产精品久久久久久久久久免费看 | 亚洲天堂成人在线 | 亚洲精品久久久久久下一站 | 精品日本久久 | 日本久久www成人免 成人久久久久 | 亚洲欧美综合一区 | 男女羞羞视频免费看 | 成人一级电影在线观看 | 超碰一区二区三区 | 亚洲免费网站 | 日韩一区二区在线免费 | 国产精品国产精品国产专区不卡 | 正在播放国产精品 | 日韩国产一区二区 | 成人区一区二区三区 | 日韩免费视频中文字幕 | 一级毛片免费看 | 国产精品美女 | 久久r精品 | 成人二区 | 国产精品亚洲成在人线 | 99国产精品99久久久久久 | 久久婷婷色 | 国产精品久久久久久亚洲调教 | 国产精品不卡 | 亚洲精品一区二区三区蜜桃久 | 一二三四区视频在线观看 | 香蕉久久久久久 | 国外成人在线视频网站 | 在线一区观看 | 青青久草 | 91国内产香蕉 | 亚洲视频在线播放 | 亚洲专区中文字幕 | 国产欧美精品区一区二区三区 | 一级毛片免费视频 | 国产激情毛片 | 国产成人午夜精品影院游乐网 | 午夜视频福利在线观看 | 99免费精品 | 久久精品国产久精国产 | 日韩视频―中文字幕 | 在线欧美一区 | 国产成人免费视频网站视频社区 | 欧美视频精品 | 亚洲一本 | 日韩成人免费 | 日韩视频精品在线 | 精品在线看 | 国产精品三级久久久久久电影 | 日本一区二区不卡视频 | 日韩中文在线 | 国产免费拔擦拔擦8x高清在线人 | 亚洲精品国产综合区久久久久久久 | 成人av教育| 精品91| 国产精品污www一区二区三区 | 欧美一区二区三区免费电影 | 中国妞videos高潮 | 成人黄视频在线观看 | 午夜播影院 | 日韩欧美一区二区三区免费观看 | 国产精品亚洲视频 | 高清久久 | www.成人国产| 日韩一级免费观看 | 伊人网页| 成人不卡 | 国产成人在线免费观看 | 在线播放中文字幕 | 91亚洲成人 | 精品国产欧美一区二区三区成人 | 成人精品久久久 | 国产精品久久久久久久9999 | 91国内外精品自在线播放 | 依人久久 | 在线欧美亚洲 | 成人精品国产一区二区4080 | 国产一区二区三区免费看 | 精品国产欧美一区二区 | 欧美日韩免费一区二区三区 | 亚洲一区二区三区视频 | av免费在线观看网址 | 欧美日韩欧美日韩 | 久久精品久久久久 | 日日干夜夜操 | 精品亚洲一区二区 | 中国黄色在线视频 | 国产一区二区三区免费观看 | 日韩av中文在线 | 国产精品1区2区3区 午夜视频网站 | 99精品欧美一区二区三区综合在线 | 一级片网 | 亚洲网站视频 | 精品中出 | 国产一区二区视频在线观看 | 热久久国产| 中文字幕欧美日韩 | 日日综合 | 在线观看成人小视频 | 国产精品中文字幕在线播放 | 成人在线视频网址 | aaa大片免费观看 | 日韩一片 | 久久天堂网 | 91看片 | 久久精品国产v日韩v亚洲 | 成人午夜剧场 | 麻豆精品一区二区 | 精品欧美一区二区精品久久久 | 国产日韩一区二区三区 | 国产一区高清 | 男人的天堂久久 | 视频一区二区国产 | 日本视频中文字幕 | 五月婷婷色 | 国产情侣免费视频 | 在线欧美成人 | 欧美一区二区免费在线 | 亚洲啊v| 精品在线一区二区 | 亚洲欧美日韩在线一区 | 久久人人网 | 久久久久久久影院 | 欧美国产免费 | 九九热最新地址 | 国产精品69久久久久水密桃 | 玖玖操| 人人操日日干 | 奇米精品一区二区三区在线观看 | 国产精品第一国产精品 | 免费国产一区 | 成人激情视频免费观看 | 高清成人| 91视频免费看片 | 午夜影院操 | 日本黄色免费播放 | 91国内精品 | 山岸逢花在线观看无删减 | 成人免费观看视频 | 国产一区二区三区在线 | 久久久日韩精品一区二区三区 | 欧美美女爱爱视频 | 在线观看国产视频 | 国产成人一区二区三区影院在线 | 射久久 | 精品久久久久久久久久久 | 国产精品毛片久久久久久 | 国产精品一码二码三码在线 | 久久亚洲欧美日韩精品专区 | 日韩在线二区 | avmans最新导航地址 | 日韩精品一区二 | 天天噜天天干 | 国产小视频在线观看 | 新疆少妇videos高潮 | 国产高清在线看 | 日本xxww视频免费 | 久久久www成人免费无遮挡大片 | 视频一区在线 | 综合久草| 国产精品视频播放 | 欧美日韩久久久久 | 欧美午夜精品久久久久久人妖 | 欧美激情在线精品一区二区三区 | 女同videos另类 | 亚洲综合天堂网 | 一区二区三区播放 | 在线国产视频 | 久久伊人操 | 亚洲 欧美 另类 综合 偷拍 | 国产成人精品久久二区二区 | 北条麻妃国产九九九精品小说 | 日韩精品视频在线播放 | 亚洲免费精品网站 | 免费毛片在线播放 | 精品视频在线播放 | 午夜四虎| 日韩中文在线 | 欧美一级二级视频 | 大陆一级毛片免费视频观看 | 亚洲精品一区二区三区中文字幕 | 日本免费视频 | 久草最新| 99精品视频在线观看 | 午夜久久久久 | 理论片87福利理论电影 | 69性欧美高清影院 | 一区二区中文字幕 | 男女国产视频 | 欧美精品免费在线观看 | 免费在线日韩 | 99re6在线视频精品免费 | 在线无码 | 男女羞羞羞视频午夜视频 | 日韩欧美三区 | 一区二区三区视频 | 超碰人人99| 亚洲国产精品成人 | 亚洲 欧美日韩 国产 中文 | 久久精品日产高清版的功能介绍 | 国产成人精品一区二区三区四区 | 欧美激情在线狂野欧美精品 | 91xx在线观看 | 欧美一区二区在线 | 国产黄色免费网站 | 国产亚洲一区二区三区在线 | 欧美精品久久久 | 久久久久久av| 久久成人精品视频 | 精品视频久久 | 天久久 | 国产高清一区 | 亚洲高清视频在线 | www.一区 | 日韩亚洲视频 | 日韩专区中文字幕 | 一级黄色毛片子 | 国产成人精品久久 | 天天干天天干天天干天天射 | 欧美在线观看黄 | 男女国产视频 | 一区二区三区在线看 | av在线入口 | 亚洲国产视频精品 | 中文av在线免费观看 | aaa在线| 日本不卡免费新一二三区 | 国产一区久久久 | 国产成人精品一区二区在线 | 成人精品免费视频 | 国产成人av免费 | 国产成人99久久亚洲综合精品 | av免费网站在线观看 | 天天干天天操 | 国产9色在线 | 日韩 | 成人午夜毛片 | 亚洲欧美日韩国产综合精品二区 | h视频免费| 亚洲精品日韩综合观看成人91 | av网站免费 | 日韩精品视频免费专区在线播放 | 国产精品久久久久久亚洲调教 | 中文字幕国产区 | 在线观看成人 | 久久精品在线观看视频 | 天天干夜夜操 | 国产精品视频一区二区三区 | 日本一区二区高清视频 | 日产久久 | 国产精品无码专区在线观看 | 婷婷色狠狠| 黑人精品视频 | 日韩在线一区二区 | a在线播放 | 国产一二三区在线观看 | 欧美一级久久 | 99热播在线 | 中文字幕日韩专区 | 精品久久久久久久久久久下田 | 99精品欧美一区二区三区 | 亚洲成人高清 | 日韩欧美在线免费观看 | 中文字幕av网 | 久久久久久久久久久网站 | 亚洲精品欧美视频 | 精品国产不卡一区二区三区 | 欧美一级片在线 | 久久伊人成人网 | 国产99精品 | 日韩欧美一区二区三区 | 精品国产精品国产偷麻豆 | 国产91在线播放精品91 | 国内自拍第一页 | 久久久久久精 | 黄色资源在线观看 | 国产精品久久久久久亚洲调教 | 精品国产乱码简爱久久久久久 | 午夜精品久久久久99蜜 | 黄频免费在线观看 | 精品成人一区二区 | 日韩一区二区三区在线观看 | 在线看免费观看日本 | 日韩精品视频在线播放 | 午夜影院a| 欧美激情a∨在线视频播放 成人免费共享视频 | 日韩中文在线视频 | 中文久久| 国产欧美视频在线 | 欧美日韩亚洲国内综合网 | 毛片视频播放 | 日日夜夜一区二区 | 日韩欧美视频一区二区三区 | 午夜影院18| 久久中文在线观看 | 国产精品自在线 | 搜索黄色毛片 | 97视频精品| 在线观看毛片网站 | 色视频网站在线观看 | 亚洲三级在线观看 | 中文字幕在线观看2021 | 99视频网站 | 密室大逃脱第六季大神版在线观看 | 色就是色欧美 | 亚洲成人中文字幕 | 国产一区二区三区在线免费观看 | 韩国成人精品a∨在线观看 国产伊人av | 欧美日韩亚洲视频 | 91精品久久| 福利视频一区二区 | 婷婷午夜激情网 | 亚洲网站在线观看 | 黄篇网址 | 国产欧美日韩综合精品 |