色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

JSON完整示例與避坑指南:從語法基礎(chǔ)到Schema校驗(yàn)

JSON完整示例與避坑指南:從語法基礎(chǔ)到Schema校驗(yàn) 簡介該資源是面向Java開發(fā)者的JSON完整示例包聚焦JSON數(shù)據(jù)交換格式的語法學(xué)習(xí)與解析/生成實(shí)戰(zhàn)。包體共22個(gè)文件、約2.88MB以json-lib系列jar包及commons等常用依賴為主同時(shí)包含可直接運(yùn)行的Java源文件、編譯后的class文件、項(xiàng)目配置文件以及一份JSON語法筆記導(dǎo)入IDE即可對(duì)照學(xué)習(xí)。目前已有3577人學(xué)習(xí)下載。示例覆蓋JSON對(duì)象、數(shù)組、嵌套對(duì)象等基本結(jié)構(gòu)演示字符串、數(shù)字、布爾值、null等數(shù)據(jù)類型的構(gòu)建與讀取并通過代碼展示JSON與Java對(duì)象之間的相互轉(zhuǎn)換。筆記部分還整理了鍵需雙引號(hào)、末項(xiàng)不能帶逗號(hào)等易錯(cuò)規(guī)則適合剛接觸JSON、希望快速掌握數(shù)據(jù)交換技能的開發(fā)者參考也可直接移植到實(shí)際接口調(diào)試或Web開發(fā)中復(fù)用。1. 一個(gè)看似簡單的格式為什么需要「完整例子」搜「json完整例子」的人通常不是沒看過 JSON 教程而是手頭正壓著一批數(shù)據(jù)要么是接口文檔只給了字段名沒給結(jié)構(gòu)要么是自己寫的 JSON 被前端一句「解析失敗」打回來要么是想把配置從 ini 遷到 JSON 卻不知道怎么組織層級(jí)。JSON 的語法半小時(shí)能學(xué)完但「能寫出來」和「一次寫對(duì)」是兩回事——完整例子的價(jià)值在于把字符串、數(shù)字、布爾、null、數(shù)組、對(duì)象六種數(shù)據(jù)類型按真實(shí)業(yè)務(wù)的形態(tài)組合起來讓你看到嵌套、轉(zhuǎn)義、空值這些寫的時(shí)候必須做的決策。這篇文章給的是可以直接抄走的完整例子、真實(shí)場景模板和排錯(cuò)手段適合正在寫接口、做配置、抓數(shù)據(jù)的開發(fā)者讀完能少走很多彎路。2. JSON 語法基礎(chǔ)從最小對(duì)象到完整數(shù)據(jù)類型示例2.1 六種數(shù)據(jù)類型完整例子首先要覆蓋的對(duì)象JSON 的全部數(shù)據(jù)類型只有六種字符串、數(shù)字、布爾值、null、數(shù)組、對(duì)象。數(shù)量少但很多寫錯(cuò)的人恰恰是在這六種類型的邊界上栽的跟頭。字符串必須用雙引號(hào)包裹單引號(hào)不合法數(shù)字支持整數(shù)和小數(shù)但不能有前導(dǎo)零不能寫 NaN 或 Infinity布爾值只有小寫的 true 和 falsenull 表示空值但「字段缺失」和「值為 null」在解析結(jié)果里是兩種完全不同的狀態(tài)數(shù)組用方括號(hào)元素可以是任意類型也可以混合對(duì)象用花括號(hào)鍵必須是帶雙引號(hào)的字符串。我見過的常見誤解是把 JSON 當(dāng)成 JavaScript 對(duì)象字面量。兩者寫法高度相似但 JSON 是一套獨(dú)立的數(shù)據(jù)交換格式它不允許注釋、不允許尾逗號(hào)、不允許不加引號(hào)的鍵名。凡是「在 JS 里能跑」的寫法放到 JSON.parse 里可能就是 SyntaxError。下面這張表把六種類型的合法寫法和常見錯(cuò)誤列在一起寫之前掃一眼能省不少排錯(cuò)時(shí)間類型合法示例常見錯(cuò)誤寫法字符串name: 示例單引號(hào)、中文引號(hào)數(shù)字price: 19.90019、NaN、Infinity布爾active: trueTrue、False、1nullremark: nullnull、NULL數(shù)組tags: [a, b]用圓括號(hào)、元素缺逗號(hào)對(duì)象user: {id: 1}鍵不加引號(hào)、尾逗號(hào)2.2 一個(gè)覆蓋全部語法的完整 JSON 示例文件下面這個(gè)例子故意把六種類型全部塞進(jìn)去同時(shí)包含兩層以上的嵌套你可以直接存成 example.json 做測試{ title: 訂單數(shù)據(jù)示例, orderId: ORD-2024-001, amount: 2999.50, quantity: 3, inStock: true, urgent: false, remark: null, tags: [加急, 禮品, 已付款], customer: { name: 示例用戶, level: 2, member: true, lastLoginAt: null }, items: [ { sku: SKU-A100, price: 899.00, attrs: { color: 黑, size: L } }, { sku: SKU-B200, price: 99.00, attrs: { color: 白, size: M } } ] }這個(gè)文件里title、orderId 是字符串a(chǎn)mount、quantity、level 是數(shù)字inStock、urgent、member 是布爾值remark 和 lastLoginAt 是 nulltags 是字符串?dāng)?shù)組customer 是對(duì)象items 是對(duì)象數(shù)組attrs 是對(duì)象套對(duì)象。如果你想驗(yàn)證某個(gè)解析器的行為邊界這個(gè)文件幾乎覆蓋了全部語法面。有幾個(gè)點(diǎn)值得單獨(dú)說。amount 寫成 2999.50 是合法的但解析后會(huì)被當(dāng)作 2999.5 處理小數(shù)末尾的 0 不會(huì)保留所以別指望 JSON 能保存「精確到分」的原始字符串金額這種字段要么用整數(shù)分存儲(chǔ)要么用字符串。null 字段在序列化時(shí)通常會(huì)保留鍵名這和「直接不寫這個(gè)鍵」不同后文會(huì)專門講。縮進(jìn)我這里用了兩個(gè)空格是個(gè)人推薦的默認(rèn)值緊湊、可讀、深嵌套時(shí)不會(huì)讓行寬失控。2.3 縮進(jìn)、換行與格式化玄學(xué)還是規(guī)范縮進(jìn)不影響 JSON 的合法性但影響排查問題的效率。兩個(gè)空格和四個(gè)空格都常見團(tuán)隊(duì)內(nèi)部統(tǒng)一即可真正影響合法性的只有三件事鍵必須帶雙引號(hào)、字符串必須用雙引號(hào)、不允許尾逗號(hào)??s進(jìn)只是給人看的機(jī)器完全不關(guān)心。換行同理。JSON 里的空白字符在語法層面完全等價(jià)你可以把整個(gè) JSON 壓成一行做傳輸也可以格式化成一棵清晰的樹。我一般遵循「傳輸用緊湊型、落盤用格式化」的習(xí)慣接口響應(yīng)為了減小體積常常去空格本地配置文件則保持格式化方便 diff 和 review。如果你拿到一個(gè)被壓縮成一行的大 JSON別用肉眼去讀直接丟給格式化工具幾秒鐘就能變成可讀結(jié)構(gòu)。注意格式化工具只能調(diào)整空白和縮進(jìn)不會(huì)幫你修復(fù)語法錯(cuò)誤。如果 JSON 本身有尾逗號(hào)或單引號(hào)工具會(huì)直接報(bào)錯(cuò)這時(shí)候先按第 4 章的清單排查。3. 真實(shí)場景中的 JSON 完整例子配置文件與 API 響應(yīng)3.1 把 JSON 當(dāng)配置文件一個(gè)服務(wù)配置的完整例子JSON 做配置文件的優(yōu)勢是層級(jí)表達(dá)能力強(qiáng)ini 風(fēng)格的扁平鍵值對(duì)在表達(dá)「數(shù)據(jù)庫連接池 日志輪轉(zhuǎn) 功能開關(guān)」這類組合時(shí)非常吃力。下面這個(gè)例子是一個(gè)典型的服務(wù)配置我把它當(dāng)模板用了很久{ server: { host: 0.0.0.0, port: 8080, workers: 4, shutdownTimeoutSeconds: 30 }, database: { host: 127.0.0.1, port: 3306, name: app_db, user: app_user, password: change_me, poolSize: 10, options: { charset: utf8mb4, timezone: 08:00 } }, logging: { level: info, file: /var/log/app.log, maxSizeMb: 100, backupCount: 7 }, features: { enableCache: true, cacheTtlSeconds: 300, rateLimit: { enabled: true, maxRequestsPerMinute: 120 } } }層級(jí)設(shè)計(jì)是配置文件里最關(guān)鍵的決策。我的習(xí)慣是「第一層按模塊分第二層按參數(shù)分超過兩層就警惕」上面的 server、database、logging、features 是第一層options 和 rateLimit 是第二層嵌套再往下就建議拆成獨(dú)立配置或用配置中心了。嵌套太深會(huì)讓使用者每次取值都寫一長串路徑比如 features.rateLimit.maxRequestsPerMinute在代碼里維護(hù)起來非常痛苦。這個(gè)配置里還藏著一個(gè)常用教訓(xùn)密碼以明文寫在 JSON 里。JSON 沒有注釋機(jī)制所以你不能像 ini 那樣在文件里寫「這是測試密碼上線前要換」常見的做法是用環(huán)境變量占位符替代敏感字段或者在啟動(dòng)時(shí)由配置中心注入。至少要做到這個(gè)文件不進(jìn)版本庫。另外端口號(hào)寫成數(shù)字而不是字符串是有意為之配置加載后會(huì)被類型化如果你的代碼里 expects 字符串需要先做一次類型轉(zhuǎn)換這是 YAML 和 JSON 配置里常見的類型陷阱。3.2 API 響應(yīng)里的 JSON列表、分頁與錯(cuò)誤碼怎么設(shè)計(jì)接口返回的 JSON 是另一個(gè)高頻場景。下面是我推薦的一種「統(tǒng)一響應(yīng)殼」結(jié)構(gòu)所有接口都返回同一個(gè)外殼code 表示業(yè)務(wù)狀態(tài)碼message 是人類可讀的說明data 放真正的業(yè)務(wù)數(shù)據(jù){ code: 0, message: success, data: { list: [ { id: 1001, title: 第一個(gè)商品, price: 19.90, stock: 120, tags: [熱銷], seller: { id: 5, name: 店鋪甲 } }, { id: 1002, title: 第二個(gè)商品, price: 299.00, stock: 0, tags: [], seller: { id: 9, name: 店鋪乙 } } ], page: 1, pageSize: 10, total: 2 } }分頁參數(shù)放在 data 里而不是外殼里是我見過比較穩(wěn)妥的約定。code 為 0 表示成功非 0 表示業(yè)務(wù)失敗HTTP 狀態(tài)碼只表達(dá)傳輸層結(jié)果比如 200、404、500業(yè)務(wù)成功與否由 code 決定兩層分開前端才能精確處理「接口通了但業(yè)務(wù)失敗」的情況。注意第二個(gè)商品的 stock 是 0而 tags 是空數(shù)組這兩個(gè)值和 null 語義完全不同前端渲染時(shí)要區(qū)分「無庫存」和「無標(biāo)簽」。一個(gè)容易踩的坑是錯(cuò)誤響應(yīng)格式不統(tǒng)一。有的接口失敗時(shí)只返回{code: 500, message: error}有的直接把 data 丟掉還有的在 data 里塞一個(gè) error 對(duì)象。我的建議是所有失敗響應(yīng)都保持和成功響應(yīng)一樣的外殼結(jié)構(gòu)data 可以置 null但鍵不能缺。前端拿到響應(yīng)先解外殼再解數(shù)據(jù)代碼路徑單一比到處判斷某個(gè)鍵是否存在好維護(hù)得多。3.3 從接口返回里提取字段Python 與 JavaScript 的最小解析代碼有了完整例子下一個(gè)訴求就是怎么解析。下面用 Python 和 JavaScript 各給一段最小解析代碼。Python 側(cè)用標(biāo)準(zhǔn)庫 jsonimport json with open(api_response.json, r, encodingutf-8) as f: data json.load(f) if data[code] ! 0: raise RuntimeError(f業(yè)務(wù)錯(cuò)誤: {data[message]}) page data[data][page] total data[data][total] print(f第 {page} 頁共 {total} 條) for item in data[data][list]: title item[title] price item[price] stock item[stock] print(title, price, stock)這段代碼先解析文件為 Python 字典再判斷業(yè)務(wù)碼最后遍歷列表。參數(shù)說明json.load 接收文件對(duì)象json.loads 接收字符串兩者別混文件必須用 encodingutf-8 打開否則含中文的 JSON 在部分環(huán)境下會(huì)拋 UnicodeDecodeError取嵌套字段要逐層用方括號(hào)比如 data[data][list]中間任何一層鍵不存在都會(huì)拋 KeyError不要指望缺鍵時(shí)返回 None。JavaScript 側(cè)用內(nèi)置的 JSON.parseconst data JSON.parse(responseText); if (data.code ! 0) { throw new Error(data.message); } const { list, page, total } data.data; console.log(第 ${page} 頁共 ${total} 條); list.forEach((item) { console.log(item.title, item.price, item.stock); });JSON.parse 的入?yún)⒈仨毷亲址绻阋呀?jīng)拿到一個(gè)對(duì)象再傳給 JSON.parse 會(huì)原樣返回不報(bào)錯(cuò)但也沒有意義。解構(gòu)賦值在這里很好用data.data.list 這種路徑用解構(gòu)一次拆平后續(xù)代碼可讀性會(huì)好很多。注意 responseText 的來源如果是 XMLHttpRequest要確認(rèn)請求已完成且狀態(tài)是 200否則 parse 的可能是空字符串直接拋 SyntaxError。4. 手寫 JSON 的避坑指南5 個(gè)最常見的翻車現(xiàn)場4.1 尾逗號(hào)與單引號(hào)為什么編輯器不幫你糾錯(cuò)現(xiàn)象手寫的 JSON 里最后一個(gè)鍵值對(duì)后面習(xí)慣性加了逗號(hào)或者所有字符串都用了單引號(hào)貼進(jìn)代碼里 JSON.parse 直接拋 SyntaxErrorPython 的 json.load 報(bào) JSONDecodeError。原因JSON 規(guī)范明確禁止尾逗號(hào)也明確要求雙引號(hào)。很多人在寫 JavaScript 對(duì)象字面量時(shí)養(yǎng)成了加尾逗號(hào)、用單引號(hào)的習(xí)慣但 JSON 不是 JS 對(duì)象字面量解析器嚴(yán)格按規(guī)范執(zhí)行不會(huì)因?yàn)槟恪缚雌饋聿畈欢唷咕头判?。編輯器默認(rèn)也不會(huì)把 .json 文件當(dāng) JS 處理語法高亮和自動(dòng)糾錯(cuò)都不生效。解決寫完后統(tǒng)一用工具校驗(yàn)。命令行里python -m json.tool data.json是最快的檢查方式有語法錯(cuò)誤會(huì)直接告訴你第幾行第幾個(gè)字符出問題編輯器里裝帶 JSON 校驗(yàn)的插件寫錯(cuò)時(shí)實(shí)時(shí)標(biāo)紅。養(yǎng)成「寫完即校驗(yàn)」的習(xí)慣后這類問題幾乎不會(huì)再出現(xiàn)。4.2 數(shù)字與 null 的邊界0、空字符串、缺失字段現(xiàn)象接口返回里字段值為 0、空字符串、null或者干脆沒有這個(gè)鍵前端用 if(field) 判斷時(shí)把它們?nèi)慨?dāng)成 falsy導(dǎo)致「庫存為 0 的商品」和「沒有庫存字段的商品」被當(dāng)成同一種情況頁面渲染錯(cuò)亂。原因JSON 里的空值語義和編程語言里的 falsy 語義不同。0 是有效數(shù)字空字符串是有效字符串null 是顯式空值而字段缺失在解析結(jié)果里表現(xiàn)為「鍵不存在」。在 Python 里取缺失鍵會(huì)拋 KeyError在 JavaScript 里得到 undefined這兩者都和 null 嚴(yán)格區(qū)分。解決前后端先約定語義。我一般規(guī)定有值就寫真實(shí)值無值用 null絕不通過「不寫這個(gè)鍵」來表達(dá)空。前端判斷時(shí)用value null同時(shí)覆蓋 null 和 undefined再用value 0、value 精確處理邊界。不要用 if(value) 這種寬松判斷處理業(yè)務(wù)字段它會(huì)把 0 和空字符串一起吞掉。4.3 轉(zhuǎn)義字符與 Unicode中文變成 \uXXXX 怎么辦現(xiàn)象從接口拿到的 JSON 里中文全是 \u4f60\u597d 這樣的轉(zhuǎn)義序列看著像亂碼或者字符串里本身包含雙引號(hào)和反斜杠手寫時(shí)沒轉(zhuǎn)義解析直接報(bào)錯(cuò)。原因JSON 字符串里的雙引號(hào)必須寫成 反斜杠必須寫成 \這是語法要求。而中文變成 \uXXXX 通常是發(fā)送方在序列化時(shí)開啟了 ASCII 轉(zhuǎn)義比如 Python 的 json.dumps 默認(rèn)會(huì)把非 ASCII 字符轉(zhuǎn)成 \u 序列這是合法 JSON只是人眼不友好。解決不要手改轉(zhuǎn)義序列。解析后正常顯示中文格式化工具也會(huì)還原 Unicode如果你要自己生成 JSON用語言自帶的序列化函數(shù)而不是字符串拼接。Python 里 json.dumps(data, ensure_asciiFalse) 可以保留中文配合 indent 參數(shù)控制縮進(jìn)生成的文件直接可讀。記住一個(gè)原則JSON 的讀寫都應(yīng)該經(jīng)過解析器永遠(yuǎn)不要手工拼接字符串。4.4 嵌套層級(jí)過深解析器真的會(huì)拒絕嗎現(xiàn)象一個(gè) JSON 嵌套了 50 層Python 的 json.load 拋 RecursionError某些 C 語言實(shí)現(xiàn)的解析器直接棧溢出進(jìn)程崩潰。原因遞歸下降解析器按調(diào)用棧處理嵌套默認(rèn)遞歸深度有限制。Python 的 json 模塊在嵌套超過約 1000 層時(shí)會(huì)觸發(fā) RecursionErrorC 系解析器可能更早出問題。深度嵌套的數(shù)據(jù)大多數(shù)來自程序自動(dòng)生成手寫很少會(huì)觸發(fā)但一旦觸發(fā)就是進(jìn)程級(jí)故障比語法錯(cuò)誤嚴(yán)重得多。解決設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)時(shí)把嵌套控制在 10 層以內(nèi)這既是解析安全也是可讀性要求。超過 10 層應(yīng)該考慮用展開的列表加 id 引用來建模比如把無限級(jí)菜單改成平鋪節(jié)點(diǎn)數(shù)組加 parentId 字段。如果數(shù)據(jù)源是別人給的、無法控制深度改用流式解析器Python 里可以換用 ijson它邊讀邊解析不依賴調(diào)用棧深度。4.5 用工具驗(yàn)證json.tool 與在線校驗(yàn)器的取舍現(xiàn)象肉眼審查了幾遍覺得沒問題發(fā)給對(duì)方還是被退回最后發(fā)現(xiàn)是某個(gè)字符串里的雙引號(hào)沒轉(zhuǎn)義。這種事非常常見尤其是嵌套多、字符串長的 JSON人腦會(huì)自動(dòng)忽略結(jié)構(gòu)錯(cuò)誤。原因肉眼檢查對(duì)嵌套多、字符串長的 JSON 不可靠引號(hào)配對(duì)這種需要逐字符確認(rèn)的細(xì)節(jié)人眼很容易跳過。寫完 JSON 直接復(fù)制粘貼到業(yè)務(wù)代碼里等運(yùn)行時(shí)報(bào)錯(cuò)再回頭查中間的時(shí)間全部浪費(fèi)了。解決本地命令行工具是首選。python -m json.tool data.json能校驗(yàn)并格式化jq . data.json同樣能做額外還能提取字段、過濾數(shù)據(jù)。在線校驗(yàn)器只在萬不得已時(shí)用把接口數(shù)據(jù)貼到網(wǎng)頁上有泄露風(fēng)險(xiǎn)尤其是包含用戶信息或內(nèi)部字段的數(shù)據(jù)。我現(xiàn)在的習(xí)慣是任何手動(dòng)改過的 JSON提交前必須過一遍 json.tool這個(gè)動(dòng)作十秒鐘能擋掉絕大多數(shù)低級(jí)錯(cuò)誤屬于投入產(chǎn)出比最高的一道防線。5. JSON Schema給「完整例子」加一道質(zhì)量檢驗(yàn)5.1 為什么光有例子不夠完整例子能告訴你數(shù)據(jù)「長什么樣」但不能保證別人寫的或程序生成的數(shù)據(jù)「符合預(yù)期」。對(duì)方可能漏了必填字段可能把 price 傳成了字符串可能嵌套結(jié)構(gòu)完全不對(duì)。這個(gè)時(shí)候需要 JSON Schema——用一份描述性文件規(guī)定數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)進(jìn)來先校驗(yàn)不合格直接拒收不用等運(yùn)行到業(yè)務(wù)邏輯深處才爆出詭異問題。JSON Schema 本身也是一個(gè) JSON這是它最妙的地方定義結(jié)構(gòu)的文件和被校驗(yàn)的數(shù)據(jù)用同一種格式表達(dá)。它支持聲明必填字段、字段類型、取值范圍、數(shù)組長度、對(duì)象嵌套規(guī)則是給「完整例子」加自動(dòng)化檢驗(yàn)最直接的手段。把 Schema 掛在接口文檔旁邊等于把「例子」升級(jí)成了「契約」。5.2 一個(gè)最小可用的 Schema 示例對(duì)應(yīng)第 2.2 節(jié)的訂單例子寫一個(gè)最小 Schema校驗(yàn)它的核心字段{ $schema: http://json-schema.org/draft-07/schema#, title: 訂單數(shù)據(jù)校驗(yàn), type: object, required: [orderId, amount, customer, items], properties: { orderId: { type: string, minLength: 1 }, amount: { type: number, minimum: 0 }, inStock: { type: boolean }, remark: { type: [string, null] }, tags: { type: array, items: { type: string }, maxItems: 20 }, customer: { type: object, required: [name], properties: { name: { type: string }, level: { type: integer, minimum: 1, maximum: 5 } } }, items: { type: array, minItems: 1, items: { type: object, required: [sku, price], properties: { sku: { type: string }, price: { type: number, minimum: 0 } } } } } }這段 Schema 里最值得注意的聲明required 數(shù)組列出必須存在的鍵remark 的 type 是[string, null]表示它允許為空amount 用 minimum 限制不能為負(fù)items 里的元素對(duì)象被遞歸聲明了結(jié)構(gòu)數(shù)組內(nèi)每個(gè)對(duì)象都必須有 sku 和 price。每一層嵌套都要寫對(duì)應(yīng)的 type 和 properties這正是「完整例子」變成「完整契約」的過程例子給的是形態(tài)Schema 給的是約束。注意一個(gè)細(xì)節(jié)level: { type: integer }卡住了浮點(diǎn)數(shù)如果你接口里的 level 可能返回 2.5這里會(huì)校驗(yàn)失敗所以定義 Schema 前要先確認(rèn)業(yè)務(wù)上真的只接受整數(shù)。Schema 寫得越嚴(yán)誤傷越多寫得越松校驗(yàn)越?jīng)]意義。這個(gè)度需要對(duì)著真實(shí)數(shù)據(jù)調(diào)幾輪。5.3 用 Schema 校驗(yàn)數(shù)據(jù)的命令行實(shí)踐Python 生態(tài)里有現(xiàn)成的 jsonschema 庫安裝后幾行代碼就能跑校驗(yàn)pip install jsonschema校驗(yàn)?zāi)_本import json from jsonschema import validate, ValidationError with open(schema.json, r, encodingutf-8) as f: schema json.load(f) with open(data.json, r, encodingutf-8) as f: data json.load(f) try: validate(instancedata, schemaschema) print(校驗(yàn)通過) except ValidationError as e: print(f校驗(yàn)失敗: {e.message}) print(f出錯(cuò)位置: {list(e.path)})validate 函數(shù)接收兩個(gè)參數(shù)instance 是要校驗(yàn)的數(shù)據(jù)schema 是結(jié)構(gòu)定義。校驗(yàn)失敗時(shí) ValidationError 會(huì)帶出具體錯(cuò)誤信息和字段路徑比如19.9 is not of type integer一眼就能定位問題。如果你不想寫腳本也可以用命令行工具 check-jsonschema把 schema 文件和待校驗(yàn)文件直接丟給它。我一般在接口聯(lián)調(diào)階段就把 Schema 掛進(jìn)自動(dòng)化測試每次 mock 數(shù)據(jù)先過 Schema再進(jìn)業(yè)務(wù)代碼。這樣「例子對(duì)不對(duì)」由機(jī)器說了算而不是靠人肉 review。Schema 和例子放同一個(gè)目錄改接口先改 Schema 再改例子兩邊漂移會(huì)大幅減少。這也是一個(gè)能被團(tuán)隊(duì)長期復(fù)用的資產(chǎn)比散落在文檔里的字段說明可靠得多。6. 把 JSON 例子變成自己的模板格式化與生成技巧先記一個(gè)通用習(xí)慣拿到任何 JSON 第一件事是jq .格式化而不是直接打開看。壓縮成一行的大 JSON 用肉眼讀是災(zāi)難格式化后結(jié)構(gòu)一目了然。jq 還能順手提取字段比如從第 3.2 節(jié)的接口響應(yīng)里只挑商品名和價(jià)格jq . data.json jq .data.list[] | {title, price} api_response.json第一個(gè)命令做格式化校驗(yàn)第二個(gè)命令做字段提取。jq 的過濾器語法值得花半小時(shí)學(xué)它是處理 JSON 最順手的命令行工具比 grep 可靠得多。第二個(gè)習(xí)慣JSON 靠代碼生成不靠手寫。尤其是配置文件和接口響應(yīng)這種會(huì)被反復(fù)修改的結(jié)構(gòu)手寫容易漏引號(hào)、加錯(cuò)逗號(hào)生成則永遠(yuǎn)正確。下面是一段 Python 生成配置文件的腳本import json config { server: { host: 0.0.0.0, port: 8080, workers: 4 }, features: { enableCache: True, cacheTtlSeconds: 300 } } with open(config.json, w, encodingutf-8) as f: json.dump(config, f, ensure_asciiFalse, indent2)json.dump 的三個(gè)關(guān)鍵參數(shù)ensure_asciiFalse 保留中文原文indent2 輸出帶縮進(jìn)的格式化文本sort_keysTrue 可選按字母序排鍵方便 diff。生成完畢后仍然跑一遍 json.tool 確認(rèn)雙保險(xiǎn)。第三個(gè)習(xí)慣是維護(hù)自己的模板庫。把第 2.2 節(jié)的完整類型示例、第 3.1 節(jié)的配置模板、第 3.2 節(jié)的接口響應(yīng)殼、第 5.2 節(jié)的 Schema 骨架存成模板文件新建項(xiàng)目直接復(fù)制改字段比每次從零開始寫省很多時(shí)間。我吃過一次虧某個(gè)項(xiàng)目里手寫了一個(gè) 200 行的嵌套 JSON沒校驗(yàn)就提交結(jié)果 CI 直接掛掉排查發(fā)現(xiàn)是第三層某個(gè)字符串忘了轉(zhuǎn)義那之后所有 JSON 改動(dòng)都必須過工具不再相信自己的眼睛。希望你從第一個(gè) JSON 起就養(yǎng)成這個(gè)習(xí)慣少走我走過的彎路希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩国产品视频中文字| 久久久久久中文| 抽插一区二区视频| 99热97| av网站国产主播在线| 蜜臀少妇一区二区| 免费日韩黄片| 亚洲麻豆18发?| 尻女朋友一夜| 2019久久久久久久久福利| 欧美 亚洲| 日本一久是| 色婷婷在线视频精品导航| 好吊色一区| 亚洲脚交| 男人的天堂成人的社区| 成人久久久| 欧美综合加勒比在线| www.婷婷五月天| 97操97色| 亚洲欧美清纯| 尤物黄色在线观看网站| 大香网站| 天天综合网~91综合网| 亚洲美女av无码| 国产AV毛片| 人妻少妇色综合| 天美一区在线| 国产 无码 一区二区| 五月综合色| 搞中出视频在线观看| 97免费视频在线| 亚洲另类电影| 婷婷色色五月天福利| 久久黄色视频一区二区三区| 久久亚洲熟妇在线视频| 欧美探花网| 超碰97精品在线| 黄资源| 国产自偷| 啊啊啊啊免费视频| 人人做人人妻人人夜视频| 9久超碰| 亚洲九九九九| 婷婷五月天成人| 成人性生活高清视频在线播放| 一本一道人妻久久一区二区三区| 亚洲国产精品无石码久久| 中文字幕av乱伦| 国产精品一级特黄aaa大片在线观看| 麻豆乱码久久精| 人人爱人人乐人人操| 久久婷婷亚洲欧| 96免费视频在线| 日本午夜久久电影| 另类小色呦| av天堂加勒比| 亚洲日本天堂| 东北夫妻性偷拍| 人妻无一区二区三区| 欧美综合第一页| 成人草草视频| 色777999综合| 国产精品高潮久久久无码| 欧美午夜视频| 91/欧美| 一级一性爱免费视频| 淫乱图区 | 欧差乱伦二三| 国产成人 综合亚洲 天堂| 欧美综合色| 91美腿丝袜在线观看| 日本狂喷奶水在线播放212| 亚洲熟妇一,二,三期| 最新的亚洲无吗| 日本理论在线| 美女刺激久久国产欧美| 噜噜噜狠狠色综合| 色婷婷五月天| 男人的天堂在线| 亚码激情| 曰本道人妻久久久在线不卡色视频| 亚洲,欧美,综合网| 日韩色女精品| 超碰在线一区二区| 91国产精品在线看| 国产乱色国产精品免费视| 亚川综合视频| 五月丁香六月婷| 美女露胸露尿口| 国产在线不卡导航| 91性高| 久久久久国产亚洲一区欧美色图日韩| 韩日精品福利视频一区不卡在线免| 97视频在| 欧美天天综合站| 夜夜嗨一区| 久久五十路熟女人妻| 国产精品三级视频网站| 在线啊啊啊啊| 欧美亚洲综合高清在线| 日韩性爱电影一区 | 亚洲乱伦图片视频| 嗯~啊~快点 死我视频| 日韩精品操少妇| 秋霞 色色| 久久草在线综合视频| 欧美精品双插| 国产精品人人爽人人做可爱福利| 色欧美天天| 九九人妻| 99色视频| 天堂网亚洲区手机版| 人妻一区二区三区四区视频| 天天透伊人| WWW美腿丝袜香蕉中文| 秋霞 色色| av中文字幕在线熟女| 俞拍自拍| 亚洲国产精品乱码在线观看| 超碰美国| 中国91AV| 五月天婷婷基地| 精品无人区麻豆乱码1区2区图片| 久久草草欧美精品| 日韩欧美加勒比| 五月天激情小说| 97伊人网| 91N综合网在线| 91东京热男人的天堂| 2025亚洲男人天堂| 日韩中文字幕人妻视频| 中文字幕AV片| av资源在线观看少妇| 亚洲男人的天堂va亚洲男人社| www.天天干| 欧美极品少妇交| 婷婷探花久久精品一区| 9久久9综合| 国产精品久久aV| 怡红院视频在线| 麻豆三极片| 日本新免费二区三区| 26UUU欧美激情一区二区| 日本中文字幕在线视频| 在线视频亚洲无码| 欧洲自拍第一页| 人妻天天夜夜爽一区二区| 国产操偷| 欧美色图综合| 俺去啦自拍| 欧美经典一区二区三区| 天天看精品动漫视频一区| 91亚.色| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | A片 AV一级在线播放观看免费| 久久综合久色欧美综合狠狠| 秋霞一区二区三区四区五区六区七区| 久久久久国产一区二| 深夜激情无码| 国产视频第2页| 韩国成人精品久久久免费看| 岛国激情视频软件| 蜜乳Av成人片网站| 久久一二三四五六七八九区区区 | 日少妇亚洲版| 口爆综合网| 亚洲Av无码成人精品国产| 国产99精品一区二区三区免费| 一级免费啪啪片| 国产91福利小视频在线观看 | 久久久九九九九| 人妻大相焦在线| 免费网站观看www在线观| 91精品又粗又猛又爽| 人妻精品4K4K4K4K4| www网站黄| 伊人操| 韩国免费播放一级毛片| 天天谢天天干| 韩日精品四区| 曰本精品久久久| 96AV久久久| 三上制服丝AV| 久久99草| 七月丁香婷婷| 亚洲阿v天堂无码z2018| 激情综合久久| 成功精品影院| 久久精品亚洲成a人天堂| 久久久999日本大片| 五月天春色激情网| 久久久久久99999国产精品| 大香蕉中文在线| 国产中文大片资源中文字幕| 91在线页| 日本一级不卡一二区| 男人的午夜天堂| 富女玩鸭子一级毛片| 静品嫩模一区二区| 亚洲欧美爆| 中文字幕第2页| 久操网视频| 亚洲天堂日本| 18啪啪手机免费性爱| 亚洲中文字母在线播放| 麻豆久久久久久久久丝袜 | 男人的天堂2019AV| 色九九久九九| 又大又长又爽| 五月天伊人网| 婷婷综合五月| 欧美日韩狠狠爱| 青草草免费网站av| 台湾佬中文娱乐自偷自拍| 91精品国产91久久久久久久久久久久| 日韩亚洲国产视频| 91久久久老司机| 欧美日韩日产免费网站看| 欧美 传媒 麻豆 日韩 偷拍| 久久透逼视频| 手机在线免费看的av| 啊视频在线| 美日韩一二三区| 国产精品黄色三级av| 亚洲 欧美 中文 日韩超碰 | 国模吧 一区二区三区| 九九自拍伦理| av网站在线观看了| 另类图片五月天| 日本污ww视频网站| 男人天堂欧美| 人妻干天天| 最新AVzaixian| 在线一道啪| 飘花国产午夜精品不卡| 亚洲蜜臀视频精品久久| 欧美 日韩 亚洲 春色| 丝袜狠狠草尤物 91| 日本高清视频xxxx| 日日夜夜狠狠| 中文字幕91综合| a亚洲欧美色欲| 摸奶性爱视频网站在线免费播放| 校园春色综合| 久7色| 精品午夜福利国产一区二区在线观看| 国产区91柔拿会所技师| 久操| 国产 码在线成人网站| 日韩在线观看三级电影| 秋霞一集毛片观看| 久久久久久久人妻| 能看的AV| 欧美韩国你懂得在线 | 亚洲视频,小说| 婷婷色一区| 久久久久无码| 亚洲图片 激情小说| 黄色不卡视频| 色原狠狠天天天| 3PAV乱伦视频| 嗯~啊~快点 死我视频| 国产精品久久久久久夜夜夜| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 99精品欧美一区二区三区桃色| 91精品丝袜在线观看| 久久这里都是精品| 人人妻人人色一区二区三区| 精品国模无码| 成年女人18级毛片毛片免费观看| 久9久| 欧美色图亚洲色,麻豆| 日韩精品人妻| 国产精品三级视频网站| 99国产精品久久久在线播放| 999精品久久久久久久| 高清无码 国产精品| AV九九| 中文字幕AV片| 国产高清亚洲日韩一区| 色婷亚洲五月在线观看| 啊啊啊啊啊好舒服视频| 日本成熟少妇A∨网站| www超碰| 丝袜制服字幕在线| 揉揉揉夜夜| 精品国产无码中文| 嗯嗯,啊啊,国产精品| 精品视频一区二区| 强免费黄色网址| 不卡一区视频| 亚洲熟女性高潮久久久| 亚洲第一色页夜| 久久精品黄色| 视频二区美腿丝袜制服人妻欧美| 9I1性色影院| 一起草视频在线| 日韩欧美国产高清视频| 91黑丝少妇| 啊啊啊久久| 免费黄色视频网址| 97欧美久久久久久久| 成 人片 黄色大片| 中文字幕在线2| 97超碰影音| 91人人臊| 九九九不卡| 亚洲色图综合| 天天干2019| 中文久久久| 超碰狠狠操| 综合亚洲欧美| 婷婷在线播放| 亚洲色图综合| 综合色图亚洲欧美| 综合激情二| 国产精品午夜成人福利| 天天操人人操狠狠插| 热热热热日日漂亮永久永久国产日| A片A5445444| 丝袜天堂| 日本熟妇人妻中出视频| 丰满人妻一区二区三区四区| 日韩AV电影网站| 久久男人的天堂| 日韩紧密久久| 岛国视频免费在线观看| 超碰色大香蕉| 婷婷成人久久久精品| 天天影视色香欲综合网小说| 91色s| 爱射综合| 美女熟妇色| 国产第二页| a在线视频免费观看| 久久 久久国内精品亚洲| 日本123区操B视频| 狠狠操,使劲操| 操逼999| 大香蕉综合网| 久久久亚洲Av| 99re99在线视频| 亚洲性爱高潮影院| 久久这里只精品免费福利| 97自拍一区| 色婷网| 欧综合网| 日本久久999| 国产欧美伊人| 久久久久久国产成人| 久久成人午夜狠狠| 欧美专区日本专区| 一二三区操逼国产91| 97国产伦理| 天堂九九九九九九九九九| 久久国产乱子伦精品免费女人| 天天插天天操天天摸天天射天天看| 欧美人人AAA| 操屄日韩| 亚洲乱妇p22| 欧美日韩精品国产91| 激情四射五月天| 伊人丁香五月婷婷| 果冻传媒A片麻豆熟妇人妻| 久久9 9 9精品| 能直接看AV的网站| 中文字幕一区二区三区高清| 97视频在线免费观看| 国产免费一区| 啊啊啊啊啊好大好舒服想要| 五月花婷婷| 欧美经典一区二区三区| 夜夜草我| 日本一级真人黄色性爱视频| 亚洲综合有码| 精久久久| 亚洲欧美一区二区不卡视频播放| 天天综合91在线| 怡红院一区二区熟女人妻| a片 xxxx受爽视频| 99操逼| 欧美在线|亚洲| 青青国产在线拍揄自揄拍| 欧州色图区| 婷婷五月色| 亚洲熟女av日韩熟女| 超碰国产精品久| 亚洲在线网站| 91一区二区三区蜜桃| 亚州综合色| 婷婷15月天青娱乐| 精品国产乱码久久久久久久久1| www.99中文字幕| 亚欧免费| 欧美人与性动交a美精品| 伊人久久综合影院精品久久久| 欧美激情亚洲| 国产在线激情| 国产剧情在线| 97超碰人人操人人操| 99999精品| 欧美最大综合网| 国产美女裸体秘 永久无遮挡| 综合性视频99| 97在线青| 玖玖无码超碰| 久久内射| 亚洲无线观看久久| 在线播放一级无码视频| 亚欧Av| 亚洲欧洲国产综合av| 福利色色| 97二区四区| 中文字幕 av v| 嗯嗯啊啊用力视频免费| 亚洲日韩一区电影| 成人AV素股で擦久久| 91色图片| 人伦四五区| 一本大道综合伊人精品热热| 福利风月五月天影院| 五月丁香色色网| 午夜久久无码1000合集| 午夜福利免费精品视频| 日韩精品亚洲专区在线影视| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 97久久免费| 国产精品探花在线| 国产中文福利| 亚洲无吗在线视频| av爱爱爱| 丁香婷婷色五月| www.色婷婷.com| 99色天堂| 欧亚第一综合网| 亚洲国产一级黄色视频| 青青草中文字幕| 午夜操一视频一区| 国产午夜福利视频在线| 蜜臀无码一区二区| 亚洲AV无码AV吞精久久久久| 在线国产探花| 污污污8888| 色爱天堂| 日韩一级欧美一级国产一级台湾| 天天操天天干一区二区| 禁片 高清 在线观看视频网站| 一个人在线看的黄色电影网站| 97天天在线| 婷婷超| 日韩黄色一区二区三区| 九久久九精品视频| 亚洲天堂一二| 深夜国产一区二区三区在线看 | 狠狠爱大香蕉| 成人av性爱电影在线观看| 亚洲一本大道中文字幕无码在线| 中文字幕视频2区| 99热欧美| 九色视频91| 五月开心久久AV官网| 玖玖久久久| 日韩福利综合一区| 久久9精品视频| 亚洲欧美天| 美女一区二区国产精品| 久久国产精品91| 超碰97日韩| 偷窥自拍A片| #NAME?| 日韩免费福利在线观看| 日韩无码嘿咻黑热久| 国产一区二区在线看| 国产a片操逼| 国产高清不卡视频| 欧美大香蕉久| 色综合潮| 日本熟女不卡视频| 久碰视频| 国产精品久久久久久久久久久久久久久| 久久精品国产亚洲AV先锋| 国产精品一区二区三区在线密挑| 亚州欧美总和| 色黄色美女大长腿午夜视频| 偷拍综合亚洲| www成人啪啪18秘 免费| 中日992视频| 日日日日做夜夜夜夜无码| 国产午夜福利视频在线| 久久精品欧美一区二区三区不卡| 久久亚洲人妻| 欧美日韩插逼视频| 精品十三区| 噜噜噜在线视频| 欧美内射少妇| 飘花国产午夜精品不卡| 人妻丝袜肏逼| 五月丁香激情综合| 丰满人妻一区二区三区蜜桃视频| 色综合天天| 91精片| 国产男女无套97| 岛国片在线播放| 午夜无码熟妇丰满人妻| 奇米四色影视777久久久| 91影视亚洲| 色牛牛AV| 毛片久久| 久久久久一本一区二区青青蜜月| 美女尤物人人操| 日本 情色 1区2区3区| 日韩一级欧美一级在线观看| 97色亚洲| 精品久久在线区一区| 日韩精品在线放| 日韩97视频| 夜夜爽33333| 麻豆国产97在线| 日韩精品电影| 日韩一级二级| 免费在线黄片视频| 四虎在线观看视频| 亚洲欧洲色情高清| 麻豆这里只有精品| 中文字幕日韩专区精品系列| 日本不卡一区二区三区| 色av中文字| 狠狠婷婷亚洲中文综合久久| 丝袜内射| 无码高清国产AV| 人妻天堂网| 中文字幕久久精品一区| www.色五月| 日韩一级特黄av毛片| 亚洲欧美伦综合| 日韩天天本| 伊色综合天堂色97| 岛国大片国产| 欧美国产精品久久九九| 亚洲综合 欧美| 95人妻爽爽人人做人人澡| 欧亚无码视频| 神马麻豆福利院| 亚拍在线| 伊人网在线观看| 久久久人体| 中日亚韩免费视频| 中国AAAAAA黄色片| 欧美日韩在线小说 | 国产精品情侣啪啪| 色九九综合| 嫖老熟女A片一二三区| 一级人妻性爱视频| 最新日本中文字幕| 午夜精品人妻二区三区| 午夜天堂精品久久| 黄色乱论网站| h在线看免费版在线看| 亚洲囯产精品女人久久久| 久草新在线| 91熟女丨老女人| 大香交| 久久一留热品黄| 人妻少妇av在线观看| 黄色视频高清无码网站| 婷婷爽人人婷婷爽视频| 久久久久白虎| 美女啪欧美一区| 啊啊啊啊在线观看网址| 欧美在线伊人色| 成年男人的天堂| 中文无码一二三区| 白丝AV网站| 综合网久久| 日逼五月天| 啊啊啊不要啊啊受不了了视频在线 | 精品在线78| 后入合集| 超碰碰97资源站| 欧美性91| 青青草日韩免费观看高清在线| 欧美78| 97伦乱| 性高潮久久久久久久久久久| 超清中文乱码字幕| 无码人妻精品一区二区三区99不卡 | 亚洲AV色图一区| 热热色AV| 大香蕉欧美| 欧美日韩人妻精品系列一区二区三区| 夜夜久久久| 久久久四区| 夜夜高潮夜夜爽夜夜爱爱一区| 欧洲综合色| 天天综合-91入口| 亚洲色天| 在线中文字幕极品av| 日本精品网站在线中文| 蜜乳AV.COM| 日本色色的视频| 亚洲宅男天堂| 中文字幕人妻色偷偷久久皮 | 欧美成人国产精品| 亚洲色图A| 亚洲性爱乱操x| 欧美丰满熟妇XXXX性ppX人交| 久久婷婷五月天| 操人妻丝袜高跟| 亚欧美综合网。| 91制服丝袜| 最新av中文字幕高清| 欧美日韩性爱操大逼| 欧美网站免费| 熟妇亚洲一区二区三区| 欧美日韩一干二干| 97网色| 强奸国产精品视频| 久久色情| 青青草色插素人| 亚洲a色| 天天摸夜夜添无码小视频| 久久99久久99久久99人受| 国产黄a三级三级三级av在线看| 一区二区三区四区久久视1| 夜夜黄| 国产av波波国产精品| 一区二区日韩欧美久久| 校园春色中文字幕AV| 极品白嫩美少妇在地板上位骑射淫水泛滥| 人人操人人插人人摸人人干| 亚洲天天艹| 久久久精品九| 交换娇妻呻吟声不停中文字幕| 五月天丁香| 青青青草伊人精品| 亚洲欧洲av影音| 最新欧美色网| 啊啊啊啊啊舒服| 99re热有精品视频国产| 天天操女人| 狠操91,com| 国产不卡免费在线视频| 台湾大香蕉99热| 97香蕉网| 粘花网06av视频| 亚洲欧美高清| 六六久久日韩不卡| 97频视在线| 日韩精品国产一区二区| 99热精品国产| 秋霞一级A片黄色视频| 爱欲AV| 国产欧美在线观看免费观看| 操久久久久久| 国产少妇内射| 天天躁日日躁AAA片李宗瑞| 无遮挡又黄又刺激的视频| 91亚·色| 91天美传媒精品| 婷婷久月| 熟女丝袜视频| 超碰97人妻在线| 亚洲有码 视频一区| 中文字幕青青草| 日本欧美成人片AAAA| 国产欧美日产一区二区三区 - 国产欧美日 | 伊人丝袜美腿高跟在线观看高清| 国产精品人妻无码久久久老鸭窝| 亚洲天堂色图| 人人性爱视频免费| 超碰中文字幕人妻草一区| 中文字幕一区二区免费在线| 亚洲综合小视频小说在线观看| 欧美精品二区视频在线| 欧美婷婷久久| 欧美性生活免费网| 日韩电影天堂视频二区三区| 人人妻人射| 亚欧美色图| 狠狠色婷婷7777久| 中文字幕一二三av| 床上啊啊啊一区二区三区| 天天综合中文字幕 91| 日韩国产品视频中文字| 久久午夜神马| 国产伦精品一区二区三区视频女| 啊啊啊啊啊啊好多水| 99热精品在线观看| 2023天天操夜夜操| 久久99精品九九久久久婷婷| 少妇干B| 东京太热男人的天堂久久久| 亚洲欧美中日韩| 久久超碰网| 久久久久密臀视频| 2024人人操人人摸| 乱操乱伦AV| 日韩97精| 日本一区二区三区欧美日韩中文字幕| 日本性爱欧美性爱| 五月天精品| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 78m成人视线| 人妻美腿丝袜制服诱惑综合天堂-| 精品成人亚洲午夜电影| 夜夜无码| 久久有码| 蜜臀久久一区二区| 日韩美女操b| 精品视频一二三中文| 999综合色| 夜夜爽爽爽| 青娱乐欧美激情一区二区| 久久久一二三四区| 97中文字幕色| av天堂影视中文在字幕在线中文| 99re热有精品视频国产| 97超碰9| 锕锕好爽 死我在线观看| 国产丝袜美女诱惑| 乱老女人一区二区视频| 亚洲阿v天堂无码z2018| 夫妻天天操岛国视频| 在线小视频| 日日夜夜骚| 欧美在线播放aaaa| 亚洲综合另类小说色区亚洲成av人片在www | 色香欲影| 久久久月天| 狠狠2050在线观看| 中文字幕精品丝袜| 久久av成人无码免费| 日本国产二线女色| 日韩啪啪啪视频| 久久手机好看网站| 九九精品热| 91天堂色男人的天堂| 国产精品久久久久无码Av网曝门| 狼人狠干| 97视频在线观看免费高清| 嫩草 我啊~嗯~在线| 自拍二页| 狠狠图片青青草| 九九99久久| 婷婷丁香成人| 亚洲AV成人无码久久精品播放| 嫩草美女久久| 92性色国产午夜福利在线661 | 欧美久久伊人| 51一区二区三区| 人人操人人操人人操人人操人人操人人人11.CM| 97干97色| 97久久精品| 欧色网址| 欧美亚洲今日在线| 超碰色97| 亚洲91在线| 精品亚洲| 国产日韩久久| 国产一级内射高清视频 | 欧美日韩岛国大片在线观看| 欧美极品美女aaaaaa级黄片| 亚洲欧美日韩制服另类| 日韩性爱啪啪视频| 麻豆天天躁天天揉揉AV| 色色99| 男女性扦B| 人人乐大香蕉| 国产久久一区二区午夜| 伊人影院中文字幕| 人妻av在线| 岛国片在线观看视频亚洲| 天天日少妇逼AV| 91精品91久久久中77777| 亚洲第一综合| 天天拍天天操| 人妻日日干| 欧美综合另类| 日韩三级av片| AV污污污污| wwe 天天干.com| 人人干黄色| 国产精品麻豆免费视频| 日本东京热加勒比久久| 一级成人性爱| 色综合网1| 日韩欧美女优电影| 中文字幕少妇色| 亚洲色图自拍| 欧美亚洲手机在线| 一级片视频啪啪| 岛国大片在线观看网站入口| 秋霞视频一区二区| 蜜桃视频精品一区二区| 日夜干射色啊| 久久一二三四不卡| 亚洲,欧美,综合网| 99999精品| 成人乱人伦一区二区| 亚洲综合精品国产一区| 精品一区二区3区| 久久超碰大香蕉| 夜夜性| 黄片qw| 任你草| 欧美成人色| 躁躁躁日日躁2020| 91午夜无码| 毛片中心9视频99| 欧美大干日韩| 亚洲自拍偷拍视频在线| 亚洲性爱成人| a久久| 色网综合网| 中文字幕97| 高清国产av无码| 熟妇最新先锋一二三区| 人妻素股| 欧美的性爱网站免费| 大香蕉综合| 精品9区| 97天堂| 99精品久久久久久久婷婷蜜桃| 成人无码专区精品视频| 插插综合网天天影视网| 国产乱伦性爱区| 麻豆国产尤物AV| 国产偷人妻精品一区二区在线| 一本大道青青| 琪琪精品免费一区二区三区| 欧美日韩国产传媒在线精品| 综合情欲网| 国产多人在线观看视频| 亚州情色j区| 色原狠狠天天天| 亚洲色91| 男人的天堂亚洲| 天躁夜夜躁2021| 国产区性爱在线视频秋霞豆| 2019天天操天天爽天天拍| 91老司机在线| 色色婷婷五月| 亚洲黄色网址| 2019精品国产无码成人| 96精品在线| 综合97| 激情文学网伊人| 干B网| 香蕉久久国产AV一区二区| 91欧美性| 婷婷丁香五月天综合东京热| 60秒免费小视频| 久久午夜鲁丝片| 91人妻视频在线| 欧美人黑A片无码免视费| 国产一区二区在线电影| 60秒免费视频| 国产午夜激片Av毛片不卡| 久久久久网站-538在线视频-欧美永久乱码 | 国产欧美一区二区| 九九九久久久| 日日夜夜国产综合| 中文字幕,人妻,日韩| 97久久免费| 芊芊操逼视频无码| 中文字幕伊人| 熟女被操视频网址| www.人人摸在线视频| 激情五月天视频| 日本媚薬中文字幕在线| 欧美毛片在线网| 东京热男人的天堂| wwe 天天干.com| 东北丰满熟女国产一区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 99精品久久久久久久婷婷蜜桃| 天天舔天天日天天射| 人妻少妇av在线观看| 97欧美精品| 久久av色| 久草免费在线一区二区| 中文字幕1区2区| 青青草天天亲夜夜操网| 欧美偷拍| 67914在线精品观看| 国产又黄又爽又刺激久久久久久| 劲爆欧美人妖三区91| 丁香六月婷婷| 久96热在线观看视频| 中文字幕人乱码中文字的预防方法| 一本一道vs波多野结衣| 91性网| 热久久99999| 秋霞免费AV| 9久精品| 九九九九九九九九九九九免费国产| 亚欧免费| 91制服丝袜| 欧美激情超碰777| 一区二区视频在线播放| 天天综合网网欲色| 亚洲天天影视色综合| www99热| 亚洲无码免费看| 国产不卡的视频 | 超碰97男人| 日本精品一区二区中文字幕| 中文字幕久久婷婷丁香五月天| 劲爆欧美人妖三区91| 国产后入精品| 操逼网免费无码视频| 国产无码精品无码| 风间由美日韩欧美久久| 91欧美美女日韩国产婷婷| 国产亚洲在线| 日本女优在线视频福利| 先锋激情∨在线视频播放| 啊啊啊啊啊啊在线观看| 男人的天堂Va| 极品出轨视频网站| 欧美体内射精| 色麻豆AV| 伦在线97| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 图片区小说区| 成人乱码一区二区三少妇| 51久久夜色精品国产麻豆| 黄片免费日韩| 人人摸人人入| 黄片www视频免费| 人妻久久一区二区三区 | 国产精品一区二区久久精品| 亚洲黑人在线| 农村女一级毛卡片| 欧美少妇色图| WWW.操逼.COM| 亚洲人体视频在线观看| 国产在线视频午夜精华在| 亚州综合网| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 不卡超碰护士AV在线免费播放| 五月天婷婷激情| 国产乱码久久| 九一亚洲国产免费| 久久天天躁日日躁狠狠躁 | 乱性AV| 国产精品午夜福利亚洲综合网| 国产家庭乱伦表演| 久久亚州精品成人Av无| 日本一区视频在线观看| 中文字幕精品一区欧美| 不卡一区二区日本视频| 福利在线黄片| www.超碰| sss视频华人在线| 久久 亚洲 日韩 人妻| 嗯嗯嗯啊啊啊干死我吧| 97欧美色综合| 超碰99在线| 2024年最新色情网站在线观看| 激情天天视频| 亚洲乱码国产乱码精网站| 最近的最新的中文字幕视频| 99色| 啊啊啊不要啊啊受不了了视频在线 | 国产av青草| 亚洲第91页| 青草伊人网| 伊人影院日本| 成人性爱视频在线看| 99re国产中文字幕| 91N五十路| 内射卯月麻衣| 超碰九区| 26UUU欧美激情一区二区| 国产高清无码一区二区三区四区皇冠| 激情五月天网站| 五月天色电影| 亚洲少妇综合| 免费无码婬片AAAA片直播色戒| www.伪伪| 曰韩精品九九无码| 久操网在线| 亚洲色阁| 26uuu性物| 五月丁香成人网| 在线观看视频91| 国产精品丝袜在线| 国产精品一区二区校花| 日日爽夜夜爽| 欧美国产操逼| 国产福利一区二| 日韩国产中文字幕| 精品无人区麻豆乱码久久久| 一本大道久| 中文字幕日韩人妻视频| 五月婷婷丁香六月| 夜夜爽爽夜夜精品视频| 欧美v日韩v亚洲v最新在线| 岛国视频免费在线观看| 九九天堂| 美女爽到高潮91| 免费观看国产小粉嫩喷水精品午| 9 9精品一区二区三区| 91艹| 91亚洲色人| 女色视频社区| 午夜福利合集| 国产91精品福利在线| 午夜久久一区二区无码中出| 黄页网站成人免费| 手机在线A片| 亚洲熟妇丝袜在线观看| 免费视频观看60秒| 熟女人妇一区二区三区| 内射黑人| 一区AV| 日本久久久久久久久| 四季av一区二区凹凸精品小说| 精品高清一区二区三区三州| 少妇毛片久久| 亚洲天天在线| 99只有精品| 东京热,男人的天堂| 国产精品免费美女视频| 欧美日韩人妻婷婷一区| 涩综合导航| 日本一二三高清| 2023天天操夜夜操| 中文无码一二三区| 综合久久9| 夜夜中出国产| 国产99热| 旡码电影特区| 狠狠操使劲操| 97网址www| 亚洲欧美日韩中文播放| 97天天爽| 操国产高清| 亚洲熟妇图片| 狠狠久久手机视频精品| 人妻密肉在线观看| 一区二区三区美女超清| 国产性刺激| 九九九综合精品| 3PAV乱伦视频| 91久久18禁| 在线观看岛国有码| 清纯唯美第一页| 超碰一区二区| 久久久久人| 欧美日韩岛国大片在线观看| 亚洲系列欧美| 国产懂色精品国产av| 日韩人妻精品| 高清国产av无码| 老鸭窝在线视频播放| 大香蕉伊人久久| 999999精品| 久久久999网站| 亚洲图片激情综合另类| 欧美国产有色电影| 成人激情无码在线视频| 国产不卡的视频 | 人妻久热在线| 97超碰磁| 神马久久69| 日韩精品视频在线观看一卡二卡| 男人天堂无码| 曰韩欧美国产传媒麻豆第一区| 日本孕妇一区二区视频操逼免费看| 欧美成人亚洲精品| 377p欧洲日本亚洲大胆| 少妇熟女视频一二三区| 日韩久久三区| 国产精品一区二区久久精品| 色悠久久久av| 农村妇女一级二级三级视频| 2018天天日天天日| 97超碰超欧美。| 婷婷六月色| 亚洲无无码αⅴ每日更新| 日韩国产不卡在线视频| 亚洲女优有码无码高清| 欧美日不卡| 日韩色欲久久一二三四区| AV中文字幕三四五| 精品无码一区二区| 1禁看欧美黄片免费看| 欧美色图 色综合图| 美女毛片999| 九九av| 欧美性爱免费短视频| 97色欧洲| 97日视频| 日本三级韩国三级99| 一本大道不卡一二三区| 97亚洲色图| 色眯眯av| 人妻在线臀日韩| 国产热RE99久久6国产精品首| 综合亚洲欧美精品日韩?v| 欧洲一区二区| 97色视频在线| 午夜精品久久久久久久男人的天堂 | 五月天AV资源| 青春草A| 99国内精品| 欧美日韩第一页| 国产女同视频在线播放| 日韩97P| 国产精品一区二区麻豆| 日韩精品99久久久久久中文字幕| 国产精品大香蕉| 黄在线| 韩三级a视频在线观看| 久久久久久久| 后入日本1234| www被窝色com| 久久熟妇五十路一区| 亚洲黑丝在线| 天天插天天操| 偷拍自拍在线视频观看| 国产精品麻豆免费视频| 亚洲色图欧美色图另类图片| 黑人精品欧美一区二区蜜桃| 欧美青青视频| 97超碰色屌| 午夜呻吟欧美| 欧美大香蕉卡久久| 国产丝袜视频| 97av在线视频| 韩国一级做A片免费的| 久久久久久国产无码精品| 92性色国产午夜福利在线661| 久久久久国产精品久久久| 96久久久久久久| 黑人性欧美| 欧美人妖内射| 综合欧美色图| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 加勒比无码毛片| 精品人妻一区二区三区蜜桃视频| 伊人色综合欧美| 亚洲欧美日韩电影网站一区 | av网页一区二区三区| 日本 色 导航| 欧美黄色大片在线观看| 777琪琪午夜免费A片| 天天躁日日躁成人字幕aⅴ| 欧美性爱18观看| 国产精品高清2021在线| 久热精品在线国产| 八戒无码国产午夜福利| 欧美A片中文字幕| 涩涩涩综合| 乱伦AVxx| 五月激情视频| 蜜臀久久一区二区|