久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

JSON完整示例與避坑指南:從語法基礎(chǔ)到Schema校驗(yàn) 簡(jiǎ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è)看似簡(jiǎn)單的格式為什么需要「完整例子」搜「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í)場(chǎng)景模板和排錯(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 做測(cè)試{ 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ì)專門講??s進(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 壓成一行做傳輸也可以格式化成一棵清晰的樹。我一般遵循「?jìng)鬏斢镁o湊型、落盤用格式化」的習(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í)場(chǎng)景中的 JSON 完整例子配置文件與 API 響應(yīng)3.1 把 JSON 當(dāng)配置文件一個(gè)服務(wù)配置的完整例子JSON 做配置文件的優(yōu)勢(shì)是層級(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ì)讓使用者每次取值都寫一長(zhǎng)串路徑比如 features.rateLimit.maxRequestsPerMinute在代碼里維護(hù)起來非常痛苦。這個(gè)配置里還藏著一個(gè)常用教訓(xùn)密碼以明文寫在 JSON 里。JSON 沒有注釋機(jī)制所以你不能像 ini 那樣在文件里寫「這是測(cè)試密碼上線前要換」常見的做法是用環(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è)高頻場(chǎng)景。下面是我推薦的一種「統(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)請(qǐng)求已完成且狀態(tài)是 200否則 parse 的可能是空字符串直接拋 SyntaxError。4. 手寫 JSON 的避坑指南5 個(gè)最常見的翻車現(xiàn)場(chǎng)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)槟恪缚雌饋聿畈欢唷咕头判小>庉嬈髂J(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)義。這種事非常常見尤其是嵌套多、字符串長(zhǎng)的 JSON人腦會(huì)自動(dòng)忽略結(jié)構(gòu)錯(cuò)誤。原因肉眼檢查對(duì)嵌套多、字符串長(zhǎng)的 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ù)「長(zhǎng)什么樣」但不能保證別人寫的或程序生成的數(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ù)組長(zhǎng)度、對(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)化測(cè)試每次 mock 數(shù)據(jù)先過 Schema再進(jìn)業(yè)務(wù)代碼。這樣「例子對(duì)不對(duì)」由機(jī)器說了算而不是靠人肉 review。Schema 和例子放同一個(gè)目錄改接口先改 Schema 再改例子兩邊漂移會(huì)大幅減少。這也是一個(gè)能被團(tuán)隊(duì)長(zhǎng)期復(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
返回資訊列表
超碰超碰95| 黄片不用下载在线观看| 啊啊啊在线看| 亚洲天天艹| 国产精品无码久久久久2025| 91亚洲人| 久久线上视频免费看| 色婷婷六月丁香七月婷婷| 青青草玖玖爱| 精彩视频日韩| 天天综合91在线| 亚洲制服aⅴ中文字幕| 久久综合97| 歐美性天天| 亚洲操人| 久久人人爽爽人人爽人人片αV| 91制服丝袜| 91日产欧美| 久久国产三区| 99免费视频| 少妇高潮特黄A片| 外国免费性情大片| 日本道日本道中文字幕日本道最新日本道在线观看| 欧美一区二区三区大综合| 久草免费福利在线播放| 成年人三级黄色片视频| 亚洲人妻熟妇三十三区| 91人人看| 2020中文字幕| 蜜桃无码AV一区二区| 五十路三级片| 国产av激情无码久久天堂| 亚洲乱妇p22| 人妻色情天天操| 绯色AV粉色AV蜜臀AV| 极品色社| 超碰调教97| 日韩操p| 亚洲在钱| 亚洲开心网| 天天天操天天天爱| 丝袜视频网国产90| 色噜噜狠狠色综无码久久| 好好的日:com久久九九| 97视频620| 欧美九九爱| 91色艳| 91狠婷| 九九热精品| 99热只有这里有精品| 三级网色| 亚洲暴力强奸AV| 天天操天天看| 欧美,日韩,中文,另类| 亚洲色天堂九9| 天美一区在线| 一二三四区操操Av| 欧美九九九| 乱操9999| 国产精品96| 91bbb| 秋霞Av理论一级在线| 日韩9区| 亚州熟女乱伦| AA特级绝黄| 国产性爱乱伦AV| 婷婷色综合| 精品99999久久久久久| 99视频精品| 天天日日本| 久久久久亚洲精品| 欧亚日韩中文在线| 免费超碰97在线观看| 澳门黄片一香蕉视频| 精品一区二区国产日韩| 色黄色美女大长腿午夜视频| 婷婷五月av| 中文字幕日产av人| 欧美丝袜美女电影一二三四区| 香蕉免费一区二区三区不读| 日本色日夜干| 久久亚洲欧美中文字幕国语| 91|九色|国产熟女| 熟妇人妻精品一区二区视频色欲| 久久久9品一区二区三区| 婷婷香蕉欧美在线一区二区三区| 久久超碰大香蕉| 骚鸭AV| 亚洲最新Av| 欧美人妻精品一区二区| 岛国小电影| 午夜视频久久久| 东京热男人天堂| 久久亚洲AV无码专区首页| 亚洲日本韩国在线| 国产乱人妻精品入口| 俺去啦自拍| 97在线免费| 日韩丝袜二区| 色九九九九| 青青草原伊人网| 久久草草亚洲蜜桃臀| 色综合av男人天堂| 欧美爆操91| 成人开心网在线视频| 日韩精品中文字幕人妻| 日韩不卡av一二三| 精品久久久久9999| 欧洲人妻视频| 男女激情黄色网址| 蜜臀久久精品久久久久视频| 人人看人人插| 北条麻妃99精品青青久久| 欧美日本不卡| 性爱边摸边日免费AV| 2025亚洲男人天堂| 天天噜| 亚洲精品亚洲人成人网| 久草老司机| 精品国产人成在线| WWW.加勒比人妻一区不卡.com| chaopen97久久| 日日操丁香五月天| 国产99999久久精品| 久久成人午夜精品影院| 丝袜天堂| 男人高清无码一区二区| 日韩97视频| 超碰在线观看av不卡| 亚州精人品大香蕉| 大香蕉在线SuP| 人人 操人人 操人人| 久久久A∨| 四虎av在线| 精品一区二区成人动漫| 久草新在线| 99热在线观看| 91美女视频| 嗯嗯嗯好爽| 热99这里有精品综合久久 | 亚洲色综合| 97人人夜| 淫骚熟女一区二区三区| 久久亚洲AV无码专区国产精品| 亚洲天堂自拍| 福利操逼| 亚洲黄色电影| 新版天堂中文资源8在线| 欧美高清在线| 超91综合网| 精品视频一区二区| 丝袜综合| 尤物国产一区在线观看| 97超碰色色| 欧美丝袜激情| 影音先锋乱| 亚洲 欧美 综合 91| 国产精品视频白浆免费| 日韩猛交| 精品九九淫乱男| 强奸乱伦av电影| 特色a在线上| 欧美少妇熟女| 国产欧美精选激情视频| 欧美日韩人妻精品一区二区三区| 国产成人网站在线观看| 久久久精品中文字幕爱豆| 日韩人妻资源在线看| 亚洲加勒比久久日本道| 九九九九九精品十六| 国产亚洲综合欧美一区| av网站免费看| 羞答答AV中文字| 丁香五月性| 美女裸体无遮挡永久免费观看网站| 久久男人网| 可以在线观看AV的网站| 中日亚韩免费视频| 色九久| 97视频新免费| 午夜天堂网| 丁香五月影院| 强奸乱伦动态污图免费| 亚洲国产一级黄色视频| 传媒在线观看一区二区三区| 九九九久久久久| 丁香六月婷婷综合| 国产第25页在线观看| 国产精品com| 骚熟女AV网| ss久久| 这里有精品| 999亚洲国产视频| 亚洲阿v天堂在线| 成人日本片久久久蜜桃| 成人热久久精品| 性欧美体内射精| 99超级碰免费视频| 性一交一乱一交A片久久四色| 俄罗斯一区二区视频在线观看| 欧美色图校园春色| 不卡视频一区蜜桃视频| 欧美色图在线视频少妇| 亚洲天堂人人妻| 神马久久久久眼| 日本黄 R色 成 人网站| 亚洲精品不卡一二三区| 素颜老阿姨乱情色| 中文字幕在线观看网页| 国产又粗又又黄又猛| 国产高潮AA片免费看| 亚洲第一免费视频| 18禁精品网站在线看| 在线视频97| 啊啊啊啊啊好多水| 久久久久99999| 亚洲 欧美综合| 久草久日| 久久精品无码一区二区三区| 成人国产二区三区在线,男女精品。| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 天天干人妻| 欧美视频第二页| 好看的91视频| 亚洲一区亚洲天堂| 激情四射婷婷六月天| 传媒免费一区二区三区| 操b网站亚洲无码| 久久深夜无码| 1204金沙人妻懂旧版免费| 爱干爱射网啊啊啊| 日本好吊色视频| 粉嫩久久久极品| 天堂涩涩| 99热这里只有精品18| 蜜桃久久一区二区| 探花视频免费观看国产专区| 亚洲国产欧美一区二区潘金莲 | 91色艳| 精品射1999| 色综合加勒比四四季| 久久发布国产伦子伦精品| 国产视频一区二区三区久久亚洲天堂| 日韩激情视频| 亚洲久草AV色图| 亚洲欧美在线丝袜| 男人天堂黄片| 青青草天天亲夜夜操网| 中文字日本乱码| 男人久久精品| 久久91| 久艾草在线精品视频在线观看| 久久欲| 成人午夜小视频手机在线看| 天天舔天天| 99国产精品免费| 色五月AV在线| 亚洲综合另类小说色区亚洲成av人片在www | 国语对白露脸XXXXXX| 操逼片中文| 伊人成人中文字幕久久网| 国产伦精品一区二区三区视频女| 91色图片| 天天干人妻视频| A级片日韩欧美国产欧美视频精选观看| 精品国产91内射久久| 久久久精品无码亚免费| 久久国产精品一级二级三级| 色天堂在线观看| 亚洲熟女av中文字幕| 脫衣舞一区二区三区| 国产日韩欧美三级片| 九草在线大香蕉| 丝袜美腿91| 午夜噜噜噜| 91人妻做a观看视频| 丁香激情网| 欧美国产操逼| 亚洲欧美在线观看无码| 999在线电影香蕉| 超碰在线在公开超碰在线在公开| 欧美一级美片在线观看免费| 蜜桃久久综合视频| 999热日韩精品| 久久五月天婷婷丁香中文字幕| 99无码视频| 97在线青| 啪啪啪东京| 熟女精品一区二区三区| 密臀在线视频| 色官网在线| 午夜精品久久久99| 中文字幕日韩人妻视频一区二区三区 | 色一情一乱一乱一区91Av| 狠狠亚洲| 日本一区视频在线观看| 青青草视频在线观看一区二区| 久久老熟女| 高清无码 国产精品| 亚洲熟妇丝袜在线观看| 日本东京热久久久电影| 精品97精品97| 黄在线| 啊啊啊啊二区好大| 日韩精品在线视频在线观看| 裸模AV女优| 黄色电影在线播放综合网站| 东北老女人的激情视频| 免费作爱一级视频| 91亚洲狠狠色| 狠狠色综合网| 日韩欧美性吧婷婷乱伦大香蕉| 开心激情婷婷| 午夜精品久久久| 亚洲欧洲偷拍一区| 一级毛片久久久久久久女人18| 欧美一区二区在线资源| 国模私拍一区二区三区神乳| ai欧美亚洲小说| 综合国产影视三级| 日韩无码久久熟女一级片| 日韩综合无码色欲vv| 日han少妇无码| 一区二区三区成人高清视频| 超碰视97中文| 婷婷亚洲综合| 久久婷婷电影网| 日本一二三高清| 国产精品一区二区校花| 久久久久久中文| 久久久国产成人一区二区三区在线| 性高潮久久久| 日本在线不卡123| 香伊人在线| 天天舔天天日天天射| 欧美久久伊人| 污色区网站| 国产少妇高潮| www久久久| 人人操 欧美| 少妇天堂网络| 国产亚热在线久久| 激情综合网激情五月天| 亚洲超碰97| 久草精品一区| 久久久久久国产精品| 操一操摸一摸| 欧美性色欧美| 品亲网欧美品亲网| 91久热这里只有精品| 老熟女乱子伦中文字幕一区二区| 精品国产Av无码久久久伦古装 | 精品无码久久久久久久杏吧| 大香蕉青青9| 99ri精品| 日韩精品在线观看观看| 97精品网| 97视频观看| 婷婷超| 久草尤物| 热久久99999| 多毛小伙内射老太婆 | 淫乱图区 | 亚洲成a人在线观看久| 大香蕉综合网| 久久久久深夜无码| 色拍偷亚洲| 一区二区久久天天干狠狠| 中文字幕aⅴ在线视频| 淫荡网址| 老熟女天天操| 日韩中文字幕精品一二三事国产精品| 国产老熟女| 五月婷婷激情综合| 人人插人人摸人人| 国产日韩在线播放av| 欧美性暴力猛交| 色综合20p| 日本亚洲vr欧美不卡高清专区| 天天综合精品| 日本三级日本三级99| 日本不卡二区| 男女一进一出视频久久| 性夜影院爽黄A爽免费动漫| 日韩精品亚洲一二三| 日韩97精| 欧美日韩人妻精品一区二区三区| 狠操91,com| 搡老熟女老女人老熟妇免费视频| 人人爱人人操人人性| 在线综合 亚洲 欧美中文字幕| 日本中文熟女视频| 91精品国产91久久青草| 欧美91精品国产自产| 变态综合色| 丰满人妻一区| 伊人网在线点播| 亚洲天堂少妇| 九九久久玖玖| 亚洲一区在线观看欧洲| 国产精品网址| 91人妻尻屄视频| 99色色网| 啪啪资源网| 欧美日韩性爱无码| 多乙久久久久久| 日本欧美国内在线| 无码9区| 神马久久久久眼| 国产农村妇女精品一| 六月婷婷一区二区三区| 日韩中文字幕宗合在线| 粉嫩av一区二区三区天美传媒 | 囯产操逼片| 亚洲偷拍自拍在线视频| 亚洲日韩肥臀视频在线观看| 97se综合网| 91丝袜激情在线| 骚日日av| 乱欲视频| 亚洲精品精品一区二区| 久久国产三区| nuu12国产麻豆精品| av橘色网站| 欧美操人视频| 99精品成人免费看| 欧美综合骚| 亚洲素人网| 91操熟女视频| 视频一区二区免费在线| 国产99久久99热这里只有精品15| 亚洲男人天堂2019| 欧美少妇高潮久久91| 一区二区三区成人| 老熟妇91| 精品无码久久久久久国产浪潮| 91呆哥人妻| 裸体美女国产免费久久久网站| 啊操爽品善一区二区三区| 老熟妇一区二区三区| 91操操操操| 中文字幕123| 久久超碰久| 蜜桃狠狠色伊人亚洲综合 | 中英熟女操女| 99碰碰| 最新精品久久蜜桃 | 91网站在线播放| 激情综合网激情综合| 久久鲁干| 亚州熟妇精品| 日韩无码精品综合久久| 中文字幕永久在线| 91蜜臀人妻中文字幕在线| 国产偷拍网站| 96久久精品一二三区色欲| 欧美大香蕉97| 97这里有精品| 大香蕉五月天| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 51国产午夜精品视频| 99激情| 亚洲中文字幕av| 强奸乱伦亚洲第一页| 91嫩草欧美| 精品国产乱码久久久久久蜜臀| 精品国产人成在线| 中文在线视频| 飘花国产午夜精品不卡| 日韩AV一区二区三区三州三州| 日本亚洲嫩草影院啪啪| 婷婷激情四射| 十八禁黄色| 色九区| 欧美日韩亚洲少妇寂寞影院正在播放 | 五月婷婷综合在线| 97鸡把在线视频| 日本肉体xxxx裸交| 亚洲影视高清三级-草1024榴社区入口-品爱AV| 一区二区三区四区免费视频| 啊啊啊啊啊啊啊网址在线观看| 亚洲一区操| 日日AV加勒比| 超碰色男人操熟女| 日韩精品一区,二区 九九...老司机| 国产精品视频自拍在线| 欧美在线视频播放| 亚洲日韩美女中文字幕乱| 超碰97久久国| 综合一区中亚洲国产成人综合精品| 人妻喷水| 五月丁香成人网| 五月亭亭六月丁香| 亚洲五区熟女| 污污汅18禁网站在线永久免费观看| 日韩视频小说在线观看| 国内毛片婷婷六月色| 美国三级日本三级久久99| 亚欧无码在线| 99热这里只有精品18| 婷婷五月在线视频| 免费的黄片有限公司| 福利天堂| 国产福利第一视频| 蜜臀在线网站| 综合久久2017| 桃色六月天| 亚洲欧美日韩精品久| 亚洲天在线| 久久久9品一区二区三区| 边做饭边操逼逼| 97超碰中文字幕| 久久久五月天| 国产女人和拘做爰视频 | 情侣操 逼视频99| 欧美劲爆视频一区二区| 97碰| 舔舔啊| 中文字幕视频一区视频二区| 26UUU欧美激情一区二区| 极品人妻少妇综合| 91夜色chaopeng| 国产成年女人免费视频播放a| 黄色片G G G| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 天天天操天天天爱| 黄色十八禁网站| 黄片不用下载在线观看| 欧美成年人性爱视频免费观看| 噜噜噜亚洲精品| 欧美日韩情色一区二区| 成人性爱全视频观看| 蜜桃狠狠色伊人亚洲综合网站| 加勒比AV天堂| 久久手机好看网站| 伊人成人中文字幕久久网| 国产女人与拘做受视频免费| 国产老太乱伦一区| 99在线观看视频在线高清| 欧美A√综合网| 七久久久| 久久五月综合| 亚洲最新av无码成人精品区| 国产又猛又粗又爽又黄| 96精品久久| 91亚洲狠狠色| 人人爽夜夜玩视频| 久久草视频污视频| 日本不卡高清免v欧美日韩在线观看| www超碰| 国产人伦a片信息免费片| 国产成人拍国产亚洲精品| 大香蕉淫人| 男人成人黄色视频在线观看免费下载| 91久久18禁| 69综合网| 国产亚洲欧洲在线观看| 啊好爽受不了无码| 91在线免费观看处女| renqi久久久久久久久久久久| 日本一级性爱| 日韩中文字幕在线视频观看| 久久精品国产亚洲AV无码电影| 1人人看人人摸人人操| 大学生口爆吞精| 成人av性爱电影在线观看| 亚洲本色精品一区二区久久| 无码78| 热99这里有精品综合久久| 四虎影视欧美| a级免费在线观看| 91麻豆天美| 青青草原av| 欧美啪啪天堂| 99热在线播放| 91成人18| 国产乱色国产精品免费视| 亚洲无码成人精品| av绯色| 免费av大片| 日本岛国黄色网址| 欧美激情综合| 婷婷五月天久久精品视频一区二区三区 | 在线人人人人人人精品超| 亚卅熟女乱色| 91大学精品激情戏| 亚洲天堂久久| 麻豆天美久久91| 超碰超碰欧美| 丰满搜索结果 -第18页- 久久高清无码| 五月天大香蕉| 亚洲男人天堂网久久| 综合网欧美在线| 亚洲综合性感在线| 美女诱惑在线一区| 欧美亚洲系列| AVE乱伦| 日操粉逼逼| 91丨九色丨大屁股| 久久夜嗨| 亚洲第一页综合在线| 亚洲色综合| 亚洲成人免费中文字幕| 一本道综合色图| 日本九九久久99播| 亚洲诱惑天堂 | 天天综合欧美| 欧美东京热精品A∨| 婷婷激情五月| 久久九精品| 性色综合网| 日本视频在线观看污污污| 亚洲色综合| 黄资源| 男人天堂2019| 久久国内| 台湾肥佬网一区二区三区| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 99国产精品视频尤物| 日本欧美国内在线| 精品九九九九九九九九九| 美女91网| 亚洲黄网在哪免费看| 混色激情av| 中日韩久久久免费看| 日本中文字幕不卡视频| 国产成人亚洲精品自产在线| 岛国999| 欧美五十路熟| 又黄又爽在线观看视频| 国产精品另类一区大香蕉| 久久久久久亚洲Av无码精| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲黑丝在线| 婷婷性网| 国产成人无码高清| 91n.欧美| 成人性爱视频在线看| 久久只有精品一区二区三区| 精品玖九九久| www.色婷婷| 久久久精| 强奸乱伦动态污图免费 | 黄色视频60分钟| 九九精品美女高溯喷水| 人人操人人摸人人骑| 日日夜夜天天| 91丝袜| 狠狠干狠狠干| 亚洲精品99999| 青青草操逼逼视频| 91另类| 五月色丁香| 一区二区视频在看| www.色婷婷.com| 69精品| 亚洲nv男人的天堂网| 天天爱天天操| 亚洲 欧美 天天| 亚洲欧洲激情卡通另类文学四射小说网站 | 精品国产乱码久久久久久久| 91操人| yazhouzaixian| 成人免费在线网站| 国产精品97视频| 婷婷五月色| 亚洲色图欧美色图另类图片| 91大胆欧美| av一区二区三区不卡| 久久一留热品黄| 思思热免费在线视频| 91美女看B| 欧美一区二区观看在线| 2020中文字幕在线| 久久黄黄| 日韩性爱一级片| 国产久久一区二区| 91狼人| 精品天堂| 欧美性,亚州色| 亚洲AV无线| 伊人久大| 亚洲一区二区三区麻豆传媒| 26uuu欧美日韩| 日1区2区3区2020| 发朗少妇买婬全视频中文| 欧美 亚洲 综合 制服| 十八禁黄色| 97欧美精品综合| 国产亚洲精品激情| 久久中文字幕女同性恋一区| 五月丁香啪啪| 亚欧毛片基地国产毛片基地| 九九久精品| 78综合网| 不卡啪啪视频| 在线日韩日本亚洲国产| 伊人精品国产| 亚洲天天艹| 美國A片| 亚洲不雅视频1区二区| 在线97在线| 国产AV超爽| 亚洲图片激情综合另类| 97在线观看视频| 神马久久中文字幕| 91操人| 国产精品一区二区校花| 97这里有精品| 最新9久久久9免费视频| av资源在线观看少妇| 北约熟女超碰| AAAA级日本片免费视频| 欧美日韩97在线| 日本免费不卡二区| 女人午夜视频777| 香蕉黄色一级视频| 精品999一区二区| wuyechaopeng| 97国产亚洲中文在线| 熟女精品一区二区三区| 国产一区二区精品久久99| 92久久| 青青草久久在线| 亚射在线| 六九九九| 综合操逼| 天天操天天舔| 精品大全99999| 久久久啊啊| 久久大香蕉| 色色网91| 免费无码婬片AAAA片直播色戒| 97亚洲中文| 后入福利| 久久九操在线观看| 蜜臀AV成人精品蜜臀| 真实高潮91| 99亚亚热| 色五月婷婷网| 99久久99九九99九九九| 色五月大香蕉| 日韩乱插| 亚洲五月婷| 欧美一级黄色18片免费看| 91 欧美| 欧美美女视频| 精品对白久久不卡| 97 色综合| 最近二区三区视频大全| 搡老女人老91妇女老熟女| 欧美高清第一页| 超碰97国产欧美| 久久久月天| 噜噜噜亚洲精| 少妇熟女一区二区三区| 欧美色色人| 精品久久久九九九孕妇| 超碰97欧美在线| 熟妇熟女一区二三区| 区一在线观看| 99只有精品| 亚洲欧洲第二视频在线观看色图| 97热视频在线观看| 中文字幕精品专区搜索结果91| 一本大道青青| 丰满人妻一区二区三区免费| 中欧人妻丝袜中文字幕| 91熟女网| 秋霞网无码| av午夜影院在线播放| 中日韩欧美精品无码AⅤ一区二区| 成人性爱全视频观看| 亚洲国产欧美中文永久| 1956日韩精品| 丝袜天堂| 91n处女在线观看| 天天操天天射青青草| Av色五月| 欧美日韩人妻婷婷一区| 久久久久幕乱码| 国产成人亚洲精品无| 天操天操夜操夜月操月年年操操| 五月天欧美色图| 日本二三四区| 一个色导综合| 黄色大香焦1级‘′‘| 丁香五月性爱| 欧美97日韩精品| 在线二区不卡| 少妇一级婬片免费放一级a性色.| 97香蕉碰碰人妻国产欧美| 欧美黑人XXXⅩ高潮交| 欧洲精品一二三在线| 国内一级精品| 天天操夜夜嗨| 国产精品视频白浆免费| 96久久精品一二三区色欲| 精品久久久久,69国产成人精| 熟妇精品juliaannAV| 91色婷婷综合久久中文字幕二区| 人人看人人插| 欧美在线官网| 超碰这里有精品| 久久中文字幕一区不卡| 91丨国产丨白浆秘 洗澡动漫| 欧美人妻一区| 久久、1234| 欧洲精品二区| 欧美性爱1080p| 欧美图片偷拍| 91N综合网| 无码最新| 99热这里只有精| 精品少妇99| 多毛小伙内射老太婆 | 国产精品日日摸天天碰| 黄色免费网页无码| 中文字幕视频2区| 婷婷三区| 97chaopengongkai| 簧片免费看视频| 久久久999网站| 四虎精品亚洲| 日韩欧美字幕亚洲一区二区| 亚洲欧洲色情高清| 国模无码人体一区二区三| 九九性视频| 3P丝袜熟女 色综合| 思思热久久成人| 亚洲欧美精品久| 亚洲情色综合| 成人五月香网在线| 综合第一页| 亚洲九九夜夜| 嗯嗯嗯啊啊在线观看| 欧美国产欧美在线观看| 天堂在线一区二区| 色色网91| 1204金沙人妻懂旧版免费| 亚洲无码成人精品| 亚洲欧洲精品成人| 欧美亚洲素人制服精品| 91天天日| 欧美人与动性人交a| 操香逼| 97无码视频在线播放| 午夜免费视频1000| 美女性91| 国产天天骚| 久久性爱精品一区| 青青草日本中文字幕| 正在播放国产精品一区| 青青操在线亚洲视频观看欧美在线| 特级特黄一级毛片免费| 激情五月激情综合网| 97超碰人妻| 久久欧洲| 日本免费中文字幕在线| 国产乱人妻精品入口| 无码操逼网| 亚洲激情欧美色图| 亚洲麻豆精品二区三区| 欲色综合| 极品内射| 久久riav中文精品| 欧美92| 欧美无圣光在线| 亚洲国产ⅴ高清在线观看| 国产成人精品一区| 久久精彩视频| 日韩操p| 在线五区| 丁香五月婷婷基地| 樱花蜜乳av| 操逼无毒无码免费视频| 激情五月天网| 免费久久一级毛片大黄| 天堂综合| 人人澡人人爽人人精品| 午夜.DJ高清在线观看免费7| 97超碰伊人| 人人搞人人插人人操| 欧美性爱网97| 久久久久久国产无码精品| 亚州欧美在线| 日本天天操| 丰满人妻一区二区三区蜜桃视频| 性生活无遮挡纯毛片在线看| 日亚韩精品视频二区三| 香蕉欧美| 九99久久| 精产国品一区二三产品| 免费看一级a性色生活片久久无| 鸥美中出| 国产小炒后入式| 97香蕉碰碰人妻国产欧美| 97超碰磁| 九九九九九九九九九国产精品| 97视频620| 国产不卡精品91| 日本免费一级AAA大片器 | 日韩精品99久久久久久中文字幕| 91精品国产日韩欧美综合| AV色女综合| 午夜无码熟妇丰满人妻| 亚洲情色1区| 静品嫩模一区二区| 国产黄色小视频网站| 少妇熟女视频一二三区| 日日A∨| 校园春色综合| 激情久久av一区av二区av| αⅴ天堂| WWW.操逼.COM| 97欧美精品| 台湾佬大香蕉| 91国精产品| 伊人991| 2019AV天堂| 亚洲 综合 欧美| 性爱乱伦一区| 国产精品第一区第一页| 人妻少妇精品久久久久久久| 天天操妹子| n1038 一二三区| 五月色丁香| 日韩黄色一区二区三区| 日欧亚洲二三区大片不卡| 激情五月综合开心五月| 97 色综合| 酒色综合网| 天天天天做夜夜夜夜做| 国产天天骚| 伊人久久大香大香线蕉中文| 日韩人妻中文视频| 亚洲AV无码黄色强奸| 日韩卡一卡二卡三在线| 亚洲成人精品在线一区| 午夜小电影在线插入淫高潮| 熟女熟妇一区二区三四区 | 日韩美脚一区二区网站| 九九亚洲视频| 美女黄频a美女大全免费皮| 影音先锋中文字幕日本好一区二区| 日本三级A片网站com| 人人看人人爰人人操| 久久久久久九| 国内偷拍精品一区二区| 波多野结衣之双飞调教在线播放| 试看60秒 爽| 国产1024在线播放| 人妻色偷色噜| 亚洲欧洲中文日韩女优乱码| 日韩人妻一区二区| 蜜臀久久99精品久久久老,,| 99国内精品| 欧美熟妇视频| 亚洲综合春色| 亚洲欧美一区二区不卡视频播放 | 国产精品不卡高清在线观看| 国产极品粉嫩馒头一线天av| 成人av福利在线观看| 国产女人极品高潮毛片| 美国一区二区免费视频| 天天日B夜夜干B时时操B| 精品人妻美妇91job| 91九色网| 伊人大香蕉在线| 91性| 日日爽熟女| A 天堂| 欧美视频一区二区在线| 日本网色| 一二三啪啪专区| 青青国产在线拍揄自揄拍| 2026国产精品视频| 人妻91少妇| 性欧美999| 欧美精品激情| 7777奇米影视久久| 中国一区二区亚洲人妻| 99热免费| 日本一久是| 天美传媒麻豆一区二区三区国产精| 人妻夜夜爽天天爽三区麻豆AV网站| 影音先锋少妇| 久久久久久AⅤ无码免费肉站 | 欧美成不卡网| 天美传媒av在线| 日韩在线观看三级电影| 国产精品永久免费10000| 五月丁香激情综合| 亚洲一区二区三区麻豆传媒| 色偷偷男人的天堂麻豆| 亚洲国产精品成人久久蜜臀| 亚洲古典另类欧美在线| 丝袜美腿欧美| 男人 天堂 日 亚洲| 91性情| 一本大道不卡一二三区| 久久99热这里只频精品6学生| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 偷拍超碰| 亚洲天天操| 98久久超碰| 岛园激情| 99色骚| 偷拍盗拍亚洲色图图片 | 久久久中文| 青青欧美| 伊人天天久久动态图| 亚洲最大AV网| 97天天操天天干| 天天看天天日天天操| 婷婷中文网| 久久做97| 精品人妻中文字幕高清| 色综合网1| 亚洲老司机123专区| 无码久久亚洲高清,| 日本五十路熟女一区二区| 一区二区三区 丝袜高跟| 超碰97人妻| 青娱乐日韩无码| 男女性扦B| www.大香| 亚洲色性情三级| 亚欧免费观看视频| 天天综合日韩网| 蜜臀99久| 麻豆人妻精品一区二区| 夜夜狼人妻| 中文字幕在线免费观看 | 国产熟码AV| 国产精品婬乱一级毛片彝族| 国产精品99久久久www| 黄色一区三区| 国产精品无码论坛| 欧洲Au麻豆| 中文字幕国产在线天堂| 69人妻精品一区二区绯色| 欧美色图亚洲色,麻豆| 大香蕉中文在线| 可以免费观看的av| 午夜噜噜噜| 大香蕉免费中文| 果冻传媒A片麻豆熟妇人妻| 五月婷婷六月丁香| 大粗鳼巴久久久久| 思思热久久成人| 骚熟女吞| 手机在线A片| 久久精品99| 天天日B夜夜干B时时操B| 97精选久久| 欧美人与性动交a美精品| 亚洲成人妻日韩在线| 极品美女福利在线观看| 大香蕉92| 天天干天天拍| 91精品人妻一区二区三区蜜桃| 天天爽天天干| 一区二区三区美女超清| 亚欧美天堂在线| 色色网91| 午夜无码熟妇丰满人妻| 亚洲色天| 久久超碰98| 婷婷丁香五月天综合东京热| 欧亚 另类 久| 五月婷在线| 日韩免费三级黄片电影| 国产精品suv一区| 国产无码久久高清| 欧美玖玖爱免费玖玖| 国产综合操逼高清| 日本一级特级毛片视频| 性欧美天天| 强奸乱伦av电影| 91美女片在线| 人妻少妇久久久| 日日干天天干夜夜爽| 97精品中文字幕| 日人妻视频91| 东京热毛片调教| 中文字幕片| 无码聚合| 9 1超碰九色| 欧美少妇一区二区三区| 亚洲色图欧美色图日韩色图| 成人无码欧美一级A片狼牙直播| 大地资源在线观看中文第二页| 国产美女高潮| 天天性射网| 狠狠色丁香| 高清国产性猛交xxxx乱大交| 后入合集| 国产精品suv一区| 婷婷六月色开| 性影在线视频| 果冻传媒A片麻豆熟妇人妻| 蜜臀久久一区二区| 高清无码在线播放网站| 9 1果冻精品视频| 色网综合网| 亚洲色天堂日韩中| 人人操 欧美| 91无码人妻| 人妻天天爽夜夜爽爽| 激情综合婷婷| 在线岛| 在线观看一级α片刺激高潮视频| 久草成人影片| 毛片17S| 成人AV在线电影| 另类一区| 国产精品一区二区亚洲人成毛片 | www亚洲免费| 香蕉视频精品亚洲一区二区三区在线播| 欧美熟妇亚洲版| 九九热精品免费视频| 澳门黄片一香蕉视频| 欧美日韩在线小说| AV99热18这里只有精品| 少妇与黑人高潮在线| 麻豆国产免费影片| 操逼片中文| 天堂69亚洲精品中文字| 五月丁香激情四射| 色 亚洲 91| 97色爱| 淫色网综合| 久久一二三四五六七八九区区区 | 91欧美网| 97在线视频观看免费| 亚洲精品一区二区免费在线观看| 好爽,再快点啊哈嗯嗯嗯嗯| 日本天天操| 久久草在线综合视频| 亚洲一区二区久久久久| 日本黄色大片一级视频免费麻豆| 午夜成人爽爽爽爽A片李冰冰| 午夜福利合集| 曰本特级特黄特色黄色A级网站高清在线免费看| 青青草伊人久久| 日韩情色视频| 啪啪资源网| 中国东北熟女老太婆内谢| 精品综合久久久久久五月天| 亚洲国产成人精品女人久久久| 99精品九九九九九九| 深夜激情| 999久久久久久久久| 亚洲丝袜在线观看| 欧美综合色图网| 天天综合91| V A在线| 99re免费视频精品全部| 日韩精品在线放|