日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

DSP学习 -- cJSON使用教程

發布時間:2025/3/15 javascript 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DSP学习 -- cJSON使用教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如需轉載請注明出處 https://juyou.blog.csdn.net/article/details/107870229

JSON 需要簡單的了解一下。誰知道啥時候用上呢~

一、JSON簡介

參看:JSON簡介
參看:cJSON使用詳細教程 | 一個輕量級C語言JSON解析器

參看:千萬不要點開,Cjson入門快速使用看這篇就夠了(CJSON入門操作以及問題講解,CJSON對象刪除出錯)

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易于人閱讀和編寫。同時也易于機器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數據交換語言。

JSON建構于兩種結構:

“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。
這些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基于這些結構的編程語言之間交換成為可能。

JSON具有以下這些形式:

對象是一個無序的“‘名稱/值’對”集合。一個對象以 {左括號 開始, }右括號 結束。每個“名稱”后跟一個 :冒號 ;“‘名稱/值’ 對”之間使用 ,逗號 分隔。

數組是值(value)的有序集合。一個數組以 [左中括號 開始, ]右中括號 結束。值之間使用 ,逗號 分隔。

值(value)可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。

字符串(string)是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。

字符串(string)與C或者Java的字符串非常相似。

數值(number)也與C或者Java的數值非常相似。除去未曾使用的八進制與十六進制格式。除去一些編碼細節。

空白可以加入到任何符號之間。 以下描述了完整的語言。

二、數據結構

cJSON使用cJSONstruct數據類型表示JSON數據:

/ * cJSON結構:* /typedef 結構 cJSON {struct cJSON *下一步;struct cJSON *上一頁;struct cJSON * child;INT類型;char * valuestring;/ *不建議寫入valueint,請改用cJSON_SetNumberValue * /int valueint;double valuedouble;字符 * string; } cJSON;

此類型的項目表示JSON值。類型存儲type為位標記(這意味著您不能僅通過比較的值來找到類型type)。

要檢查項目的類型,請使用相應的cJSON_Is…功能。它會先執行NULL檢查,然后進行類型檢查,如果該項屬于此類型,則返回布爾值。

類型可以是以下之一:

  • cJSON_Invalid(選中cJSON_IsInvalid):表示一個不包含任何值的無效項目。如果將項目設置為全零字節,則將自動具有此類型。

  • cJSON_False(選中cJSON_IsFalse):表示false布爾值。您也可以使用來檢查布爾值cJSON_IsBool。

  • cJSON_True(選中cJSON_IsTrue):表示true布爾值。您也可以使用來檢查布爾值cJSON_IsBool。

  • cJSON_NULL(選中cJSON_IsNull):表示一個null值。

  • cJSON_Number(用選中cJSON_IsNumber):表示一個數字值。該值存儲為double in valuedouble和in valueint。如果數字超出整數范圍,INT_MAX或INT_MIN用于valueint。

  • cJSON_String(用選中cJSON_IsString):表示一個字符串值。它以零終止字符串的形式存儲在中valuestring。

  • cJSON_Array(用選中cJSON_IsArray):表示一個數組值。這是通過指向表示數組中值child的cJSON項目的鏈接列表來實現的。使用next和將元素鏈接在一起prev,其中第一個元素具有prev.next == NULL和最后一個元素next == NULL。

  • cJSON_Object(用選中cJSON_IsObject):表示一個對象值。對象的存儲方式與數組相同,唯一的區別是對象中的項將其鍵存儲在中string。

  • cJSON_Raw(選中cJSON_IsRaw):表示以JSON字符存儲的零終止形式的任何JSON valuestring。例如,可以使用它來避免一遍又一遍地打印相同的靜態JSON以節省性能。解析時,cJSON永遠不會創建此類型。另請注意,cJSON不會檢查其是否為有效JSON。
    此外,還有以下兩個標志:

  • cJSON_IsReference:指定child指向和/或valuestring不屬于該項目的項目,它僅是參考。因此,cJSON_Deleteand其他函數只會取消分配該項目,而不會取消分配child/ valuestring。

  • cJSON_StringIsConst:這意味著string指向一個常量字符串。這意味著cJSON_Delete和其他函數將不會嘗試解除分配string。

三、處理數據結構

對于每種值類型,都有一個cJSON_Create…函數可用于創建該類型的項目。所有這些都將分配一個cJSON結構,以后可以使用刪除該結構cJSON_Delete。請注意,您必須在某些時候將其刪除,否則會發生內存泄漏。
重要提示:如果您已經將項目添加到數組或對象中,則不能使用刪除它cJSON_Delete。將其添加到數組或對象將轉移其所有權,以便在刪除該數組或對象時也將其刪除。您還可以使用cJSON_SetValuestring來更改cJSON_String的valuestring,而無需valuestring手動釋放前一個。

基本類型

  • 用創建空值cJSON_CreateNull
  • 布爾與創建cJSON_CreateTrue,cJSON_CreateFalse或cJSON_CreateBool
  • 用創建數字cJSON_CreateNumber。這將同時設置valuedouble和valueint。如果數字超出整數范圍,INT_MAX或者INT_MIN用于valueint
  • 字符串是使用cJSON_CreateString(復制字符串)或使用cJSON_CreateStringReference(直接指向字符串。)創建的,valuestring因此不會被刪除,cJSON_Delete并且您將對其生命負責,這對常量很有用。

數組

您可以使用創建空數組cJSON_CreateArray。cJSON_CreateArrayReference可以用于創建不“擁有”其內容的數組,因此不會被刪除其內容cJSON_Delete。

要將項目添加到數組,請使用cJSON_AddItemToArray將項目追加到末尾。cJSON_AddItemReferenceToArray可以將使用元素添加為對另一個項目,數組或字符串的引用。這意味著cJSON_Delete不會刪除該項目child或valuestring屬性,因此,如果已經在其他地方使用過,則不會發生雙重釋放。要在中間插入項目,請使用cJSON_InsertItemInArray。它將在基于0的給定索引處插入一個項目,并將所有現有項目向右移動。

如果要從給定索引的數組中取出項目并繼續使用,請使用cJSON_DetachItemFromArray,它將返回分離的項目,因此請確保將其分配給指針,否則會發生內存泄漏。

用刪除項目cJSON_DeleteItemFromArray。它的工作方式類似于cJSON_DetachItemFromArray,但通過刪除了分離的項目cJSON_Delete。

您也可以替換數組中的項目。要么cJSON_ReplaceItemInArray使用索引或與cJSON_ReplaceItemViaPointer給定的一個指針的元素。如果失敗cJSON_ReplaceItemViaPointer將返回0。這在內部所做的是分離舊項目,將其刪除,然后將新項目插入其位置。

要獲取數組的大小,請使用cJSON_GetArraySize。使用cJSON_GetArrayItem給定的索引處得到的元素。

由于數組存儲為鏈接列表,因此通過索引對其進行迭代效率不高(O(n2)),因此您可以使用cJSON_ArrayForEach宏在O(n)時間復雜度上對數組進行迭代。

對象

您可以使用創建一個空對象cJSON_CreateObject。cJSON_CreateObjectReference可用于創建不“擁有”其內容的對象,因此不會通過刪除其內容cJSON_Delete。

要將項目添加到對象,請使用cJSON_AddItemToObject。使用cJSON_AddItemToObjectCS將項目添加到一個物體是一個常量或引用(該項目的密鑰,名稱string中的cJSON結構),以便它不會被釋放cJSON_Delete。cJSON_AddItemReferenceToArray可以將使用元素添加為對另一個對象,數組或字符串的引用。這意味著cJSON_Delete不會刪除該項目child或valuestring屬性,因此,如果已經在其他地方使用過,則不會發生雙重釋放。

如果要從對象中取出一個項目,請使用cJSON_DetachItemFromObjectCaseSensitive,它將返回分離的項目,因此請確保將其分配給指針,否則會發生內存泄漏。

用刪除項目cJSON_DeleteItemFromObjectCaseSensitive。它的工作原理是cJSON_DetachItemFromObjectCaseSensitive其次cJSON_Delete。

您還可以替換對象中的項目。要么用cJSON_ReplaceItemInObjectCaseSensitive使用密鑰或與cJSON_ReplaceItemViaPointer給定的一個指針的元素。如果失敗cJSON_ReplaceItemViaPointer將返回0。這在內部所做的是分離舊項目,將其刪除,然后將新項目插入其位置。

要獲取對象的大小,可以使用cJSON_GetArraySize,因為內部對象存儲為數組,所以可以使用。

如果要訪問對象中的項目,請使用cJSON_GetObjectItemCaseSensitive。

要遍歷對象,可以使用與cJSON_ArrayForEach數組相同的方式使用宏。

cJSON還提供了便捷的幫助器功能,用于快速創建新項目并將其添加到對象中,例如cJSON_AddNullToObject。他們返回一個指向新項目的指針,或者NULL如果它們失敗了。

四、解析JSON

在以零結尾的字符串中提供一些JSON的情況下,您可以使用進行解析cJSON_Parse。

cJSON * json = cJSON_Parse(string);

給定字符串中的JSON(無論是否以零終止),您可以使用解析cJSON_ParseWithLength。

cJSON * json = cJSON_ParseWithLength(string,buffer_length);

它將解析JSON并分配cJSON代表它的項目樹。返回后,您將完全負責將其與一起使用后進行分配cJSON_Delete。

cJSON_Parseis malloc和free默認情況下使用的分配器,但是可以使用進行更改(全局)cJSON_InitHooks。

如果發生錯誤,則可以使用來訪問輸入字符串中錯誤位置的指針cJSON_GetErrorPtr。不過,請注意這可能會產生競態條件在多線程的情況,在這種情況下,最好是使用cJSON_ParseWithOpts帶有return_parse_end。默認情況下,輸入字符串中已解析的JSON后面的字符將不被視為錯誤。

如果需要更多選項,請使用cJSON_ParseWithOpts(const char *value, const char **return_parse_end, cJSON_bool require_null_terminated)。 return_parse_end返回指向輸入字符串中JSON末尾或錯誤發生位置的指針(從而以cJSON_GetErrorPtr線程安全的方式進行替換)。require_null_terminated,如果設置為,則1如果輸入字符串包含JSON之后的數據,則會導致錯誤。

如果需要更多選項來指定緩沖區長度,請使用cJSON_ParseWithLengthOpts(const char *value, size_t buffer_length, const char **return_parse_end, cJSON_bool require_null_terminated)。

五、打印JSON

給定一個cJSON項目樹,您可以使用將它們打印為字符串cJSON_Print。

char * string = cJSON_Print(json);
它將分配一個字符串并在其中打印樹的JSON表示形式。一旦返回,您將完全負責與分配器一起使用后對其進行分配。(通常free,取決于設置的內容cJSON_InitHooks)。

cJSON_Print將使用空格打印以進行格式化。如果要打印而不格式化,請使用cJSON_PrintUnformatted。

如果您對結果字符串的大小有大致了解,可以使用cJSON_PrintBuffered(const cJSON *item, int prebuffer, cJSON_bool fmt)。fmt是一個布爾值,用于打開和關閉帶有空格的格式化。prebuffer指定用于打印的第一個緩沖區大小。cJSON_Print當前使用的第一個緩沖區大小為256個字節。一旦打印空間不足,將分配一個新的緩沖區,并在繼續打印之前復制舊的緩沖區。

使用可以完全避免這些動態緩沖區分配cJSON_PrintPreallocated(cJSON *item, char *buffer, const int length, const cJSON_bool format)。它需要一個緩沖區來指向要打印的指針及其長度。如果達到該長度,則打印將失敗并返回0。如果成功,1則返回。請注意,您應該提供比實際需要更多的5個字節,因為cJSON在估計提供的內存是否足夠時不是100%準確的。

六、示例

在此示例中,我們要構建并解析以下JSON:

{“ name ”:“ Awesome 4K ”,“ resolutions ”:[{“寬度”: 1280,“高度”: 720},{“寬度”: 1920,“高度”: 1080},{“寬度”: 3840,“高度”: 2160}] }

列印
讓我們構建上面的JSON并將其打印為字符串:

//創建具有支持的分辨率列表的監視器 // //注意:返回分配給堆的字符串,使用后需要釋放它。 char * create_monitor( void) {const unsigned int resolution_numbers [ 3 ] [ 2 ] = {{ 1280,720 },{ 1920,1080 },{ 3840,2160 }};char * string = NULL ;cJSON *名稱= NULL ;cJSON * resolutions = NULL ;cJSON * resolution = NULL ;cJSON * width = NULL ;cJSON * height = NULL ;size_t 索引 = 0 ;cJSON * monitor = cJSON_CreateObject();如果(監控== NULL){轉到結尾}name = cJSON_CreateString(“ Awesome 4K ”);如果(name == NULL){轉到結尾}/ *創建成功后,立即將其添加到監視器中,從而將指針的所有權轉移給它* /cJSON_AddItemToObject(監視器, “ name ”,名稱);分辨率= cJSON_CreateArray();如果(分辨率== NULL){轉到結尾}cJSON_AddItemToObject(監視器,“ resolutions ”,決議);對于(index = 0 ; index <(sizeof(resolution_numbers)/(2 * sizeof(int))); ++ index){分辨率= cJSON_CreateObject();如果(解析度== NULL){轉到結尾}cJSON_AddItemToArray(分辨率,分辨率);width = cJSON_CreateNumber(resolution_numbers [ index ] [ 0 ]);如果(寬度== NULL){轉到結尾}cJSON_AddItemToObject(resolution,“ width ”,width);高度= cJSON_CreateNumber(resolution_numbers [ index ] [ 1 ]);如果(高度== NULL){轉到結尾}cJSON_AddItemToObject(resolution,“ height ”,height);}字符串= cJSON_Print(監視器);如果(string == NULL){fprintf(stderr,“無法打印監視器。\ n ”);}結束:cJSON_Delete(監視器);返回字符串; }

另外,我們可以使用cJSON_Add…ToObject輔助函數使我們的生活更輕松一些:

//注意:返回堆分配的字符串,使用后需要釋放它。 char * create_monitor_with_helpers( void) {const unsigned int resolution_numbers [ 3 ] [ 2 ] = {{ 1280,720 },{ 1920,1080 },{ 3840,2160 }};char * string = NULL ;cJSON * resolutions = NULL ;size_t 索引 = 0 ;cJSON * monitor = cJSON_CreateObject();if(cJSON_AddStringToObject(監視器,“ name ”,“ Awesome 4K ”)== NULL){轉到結尾}分辨率= cJSON_AddArrayToObject(監視器,“分辨率”);如果(分辨率== NULL){轉到結尾}對于(index = 0 ; index <(sizeof(resolution_numbers)/(2 * sizeof(int))); ++ index){cJSON * resolution = cJSON_CreateObject();if(cJSON_AddNumberToObject(resolution,“ width ”,resolution_numbers [ index ] [ 0 ])== NULL){轉到結尾}if(cJSON_AddNumberToObject(resolution,“ height ”,resolution_numbers [ index ] [ 1 ])== NULL){轉到結尾}cJSON_AddItemToArray(分辨率,分辨率);}字符串= cJSON_Print(監視器);如果(string == NULL){fprintf(stderr,“無法打印監視器。\ n ”);}結束:cJSON_Delete(監視器);返回字符串; }

解析中
在此示例中,我們將解析上述格式的JSON,并在打印某些診斷輸出時檢查監視器是否支持Full HD分辨率:

/ *如果監視器支持全高清,則返回1,否則返回0 * /int support_full_hd( const char * const monitor) {const cJSON * resolution = NULL ;const cJSON * resolutions = NULL ;const cJSON * name = NULL ;int狀態= 0 ;cJSON * monitor_json = cJSON_Parse(監視器);如果(monitor_json == NULL){const char * error_ptr = cJSON_GetErrorPtr();如果(error_ptr!= NULL){fprintf(stderr,“之前的錯誤:%s \ n ”,error_ptr);}狀態= 0 ;轉到結尾}名稱= cJSON_GetObjectItemCaseSensitive(monitor_json,“名稱”);如果(cJSON_IsString(name)&&(name-> valuestring!= NULL)){printf(“正在檢查監視器\” %s \“ \ n ”,name-> valuestring);}分辨率= cJSON_GetObjectItemCaseSensitive(monitor_json,“分辨率”);cJSON_ArrayForEach(分辨率,分辨率){cJSON * width = cJSON_GetObjectItemCaseSensitive(分辨率,“ width ”);cJSON * height = cJSON_GetObjectItemCaseSensitive(分辨率,“ height ”);if(!cJSON_IsNumber(寬度)||!cJSON_IsNumber(高度)){狀態= 0 ;轉到結尾}如果((width- > valuedouble == 1920)&&(height- > valuedouble == 1080)){狀態= 1 ;轉到結尾}}結束:cJSON_Delete(monitor_json);返回狀態; }

請注意,除了Result以外沒有NULL檢查,cJSON_Parse因為因為已經cJSON_GetObjectItemCaseSensitive檢查了NULL輸入,因此NULL僅傳播一個值cJSON_IsNumber,如果輸入為,則cJSON_IsString返回0 NULL

七、注意事項

零字符

cJSON不支持包含零字符’\0’或的字符串\u0000。對于當前的API,這是不可能的,因為字符串以零結尾。

字符編碼

cJSON僅支持UTF-8編碼的輸入。但是在大多數情況下,它不會拒絕無效的UTF-8作為輸入,而只是將其原樣傳播。只要輸入不包含無效的UTF-8,輸出將始終是有效的UTF-8。

C標準

cJSON用ANSI C(或C89,C90)編寫。如果您的編譯器或C庫未遵循此標準,則不能保證正確的行為。

注意:ANSI C不是C ++,因此不應使用C ++編譯器進行編譯。您可以使用C編譯器進行編譯,然后將其與C ++代碼鏈接。盡管可以使用C ++編譯器進行編譯,但不能保證正確的行為。

浮點數字

double除IEEE754雙精度浮點數外,cJSON不正式支持任何實現。它可能仍然可以與其他實現一起使用,但是這些實現的錯誤將被視為無效。

目前,cJSON支持的浮點文字的最大長度為63個字符。

數組和對象的深層嵌套

cJSON不支持嵌套太深的數組和對象,因為這會導致堆棧溢出。為了防止這種CJSON_NESTING_LIMIT情況,默認情況下,cJSON將深度限制為1000,但可以在編譯時進行更改。

線程安全

通常,cJSON 不是線程安全的。

但是,在以下情況下它是線程安全的:

  • cJSON_GetErrorPtr永遠不會使用(可以改用return_parse_end參數cJSON_ParseWithOpts)
  • cJSON_InitHooks 僅在任何線程中使用cJSON之前才被調用。
  • setlocale 在返回對cJSON函數的所有調用之前,永遠不會調用它。

區分大小寫

最初創建cJSON時,它不遵循JSON標準,并且沒有區分大寫和小寫字母。如果您想要正確的,符合標準的行為,則需要使用CaseSensitive可用的功能。

復制對象成員

cJSON支持解析和打印JSON,該JSON包含具有多個具有相同名稱的成員的對象。cJSON_GetObjectItemCaseSensitive但是始終只會返回第一個。

二、下載使用

下載地址: https://github.com/DaveGamble/cJSON

因為整個庫只有一個C文件和一個頭文件,所以您只需復制cJSON.h并復制cJSON.c到項目源并開始使用它。

示例下載:https://github.com/whik/cJSON_Demo

/*Copyright (c) 2009 Dave GamblePermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE. */#include <stdio.h> #include <stdlib.h> #include "cJSON.h"/* Parse text to JSON, then render back to text, and print! */ void doit(char *text) {char *out;cJSON *json;json=cJSON_Parse(text);if (!json) {printf("Error before: [%s]\n",cJSON_GetErrorPtr());}else{out=cJSON_Print(json);cJSON_Delete(json);printf("%s\n",out);free(out);} }/* Read a file, parse, render back, etc. */ void dofile(char *filename) {FILE *f;long len;char *data;f=fopen(filename,"rb");fseek(f,0,SEEK_END);len=ftell(f);fseek(f,0,SEEK_SET);data=(char*)malloc(len+1);fread(data,1,len,f);fclose(f);doit(data);free(data); }/* Used by some code below as an example datatype. */ struct record {const char *precision;double lat,lon;const char *address,*city,*state,*zip,*country; };/* Create a bunch of objects as demonstration. */ void create_objects() {cJSON *root,*fmt,*img,*thm,*fld;char *out;int i; /* declare a few. *//* Our "days of the week" array: */const char *strings[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};/* Our matrix: */int numbers[3][3]={{0,-1,0},{1,0,0},{0,0,1}};/* Our "gallery" item: */int ids[4]={116,943,234,38793};/* Our array of "records": */struct record fields[2]={{"zip",37.7668,-1.223959e+2,"","SAN FRANCISCO","CA","94107","US"},{"zip",37.371991,-1.22026e+2,"","SUNNYVALE","CA","94085","US"}};/* Here we construct some JSON standards, from the JSON site. *//* Our "Video" datatype: */root=cJSON_CreateObject(); cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble"));cJSON_AddItemToObject(root, "format", fmt=cJSON_CreateObject());cJSON_AddStringToObject(fmt,"type", "rect");cJSON_AddNumberToObject(fmt,"width", 1920);cJSON_AddNumberToObject(fmt,"height", 1080);cJSON_AddFalseToObject (fmt,"interlace");cJSON_AddNumberToObject(fmt,"frame rate", 24);out=cJSON_Print(root); cJSON_Delete(root); printf("%s\n",out); free(out); /* Print to text, Delete the cJSON, print it, release the string. *//* Our "days of the week" array: */root=cJSON_CreateStringArray(strings,7);out=cJSON_Print(root); cJSON_Delete(root); printf("%s\n",out); free(out);/* Our matrix: */root=cJSON_CreateArray();for (i=0;i<3;i++) cJSON_AddItemToArray(root,cJSON_CreateIntArray(numbers[i],3));/* cJSON_ReplaceItemInArray(root,1,cJSON_CreateString("Replacement")); */out=cJSON_Print(root); cJSON_Delete(root); printf("%s\n",out); free(out);/* Our "gallery" item: */root=cJSON_CreateObject();cJSON_AddItemToObject(root, "Image", img=cJSON_CreateObject());cJSON_AddNumberToObject(img,"Width",800);cJSON_AddNumberToObject(img,"Height",600);cJSON_AddStringToObject(img,"Title","View from 15th Floor");cJSON_AddItemToObject(img, "Thumbnail", thm=cJSON_CreateObject());cJSON_AddStringToObject(thm, "Url", "http:/*www.example.com/image/481989943");cJSON_AddNumberToObject(thm,"Height",125);cJSON_AddStringToObject(thm,"Width","100");cJSON_AddItemToObject(img,"IDs", cJSON_CreateIntArray(ids,4));out=cJSON_Print(root); cJSON_Delete(root); printf("%s\n",out); free(out);/* Our array of "records": */root=cJSON_CreateArray();for (i=0;i<2;i++){cJSON_AddItemToArray(root,fld=cJSON_CreateObject());cJSON_AddStringToObject(fld, "precision", fields[i].precision);cJSON_AddNumberToObject(fld, "Latitude", fields[i].lat);cJSON_AddNumberToObject(fld, "Longitude", fields[i].lon);cJSON_AddStringToObject(fld, "Address", fields[i].address);cJSON_AddStringToObject(fld, "City", fields[i].city);cJSON_AddStringToObject(fld, "State", fields[i].state);cJSON_AddStringToObject(fld, "Zip", fields[i].zip);cJSON_AddStringToObject(fld, "Country", fields[i].country);}/* cJSON_ReplaceItemInObject(cJSON_GetArrayItem(root,1),"City",cJSON_CreateIntArray(ids,4)); */out=cJSON_Print(root); cJSON_Delete(root); printf("%s\n",out); free(out);}int main (int argc, const char * argv[]) {/* a bunch of json: */char text1[]="{\n\"name\": \"Jack (\\\"Bee\\\") Nimble\", \n\"format\": {\"type\": \"rect\", \n\"width\": 1920, \n\"height\": 1080, \n\"interlace\": false,\"frame rate\": 24\n}\n}"; char text2[]="[\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]";char text3[]="[\n [0, -1, 0],\n [1, 0, 0],\n [0, 0, 1]\n ]\n";char text4[]="{\n \"Image\": {\n \"Width\": 800,\n \"Height\": 600,\n \"Title\": \"View from 15th Floor\",\n \"Thumbnail\": {\n \"Url\": \"http:/*www.example.com/image/481989943\",\n \"Height\": 125,\n \"Width\": \"100\"\n },\n \"IDs\": [116, 943, 234, 38793]\n }\n }";char text5[]="[\n {\n \"precision\": \"zip\",\n \"Latitude\": 37.7668,\n \"Longitude\": -122.3959,\n \"Address\": \"\",\n \"City\": \"SAN FRANCISCO\",\n \"State\": \"CA\",\n \"Zip\": \"94107\",\n \"Country\": \"US\"\n },\n {\n \"precision\": \"zip\",\n \"Latitude\": 37.371991,\n \"Longitude\": -122.026020,\n \"Address\": \"\",\n \"City\": \"SUNNYVALE\",\n \"State\": \"CA\",\n \"Zip\": \"94085\",\n \"Country\": \"US\"\n }\n ]";/* Process each json textblock by parsing, then rebuilding: */doit(text1);doit(text2); doit(text3);doit(text4);doit(text5);/* Parse standard testfiles: */ /* dofile("../../tests/test1"); */ /* dofile("../../tests/test2"); */ /* dofile("../../tests/test3"); */ /* dofile("../../tests/test4"); */ /* dofile("../../tests/test5"); *//* Now some samplecode for building objects concisely: */create_objects();return 0; }

如需轉載請注明出處 https://juyou.blog.csdn.net/article/details/107870229

總結

以上是生活随笔為你收集整理的DSP学习 -- cJSON使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

黄污视频网站大全 | 日韩网站一区 | 在线看国产日韩 | 亚洲夜夜综合 | 久久一区国产 | 亚洲黄色片一级 | 国内精品久久久久久久久久清纯 | 精品99在线观看 | 伊人婷婷综合 | 国产午夜三级一二三区 | 欧美午夜久久 | 91在线看网站| 视频一区二区国产 | 日韩一区视频在线 | 国产综合福利在线 | 中文字幕免费高清在线 | 久久国产热 | 午夜视频导航 | 免费高清国产 | 丁香六月久久综合狠狠色 | 国产中文欧美日韩在线 | 成人黄在线观看 | av黄色免费在线观看 | 成人午夜久久 | 国产在线观看xxx | 99亚洲精品 | 欧美另类z0zx | 色多多视频在线 | 免费色视频在线 | 久久久久久久国产精品视频 | 这里只有精品视频在线 | 在线视频日韩一区 | 国产亚洲91 | 午夜久久久久久久久久影院 | 国产在线日韩 | 青青草视频精品 | 亚洲理论在线观看 | 国产二区电影 | 在线观看黄av | 日韩av成人免费看 | 丁香五月网久久综合 | 少妇bbb | 日本高清久久久 | 五月激情丁香 | 久草影视在线观看 | 亚洲一级免费电影 | av福利在线看 | 亚洲激情婷婷 | 国产在线永久 | 夜夜夜草 | 久久夜夜夜 | 偷拍精偷拍精品欧洲亚洲网站 | 中文字幕精品一区久久久久 | 一区 二区 精品 | 九九热精品在线 | 9i看片成人免费看片 | 天天操天天添天天吹 | 成人久久久久久久久久 | 免费三级黄| 人人插人人艹 | 黄色免费观看视频 | 啪嗒啪嗒免费观看完整版 | 欧美91精品久久久久国产性生爱 | 欧美成人按摩 | 天天摸天天操天天舔 | 激情xxxx| 蜜臀av网站| 亚洲精品女人久久久 | 婷婷在线视频观看 | 国产成人精品久久 | 国产最新在线观看 | 免费亚洲视频 | 免费在线观看黄色网 | 亚洲国产影院 | 激情综合五月天 | 久久国产剧场电影 | 最新中文字幕视频 | 精品一区二区av | 丁香婷婷色综合亚洲电影 | 草久视频在线 | 亚洲三级影院 | 久久污视频 | 色99之美女主播在线视频 | 久久久久久亚洲精品 | 久草www| 国产精品综合久久 | av在线免费在线观看 | 国产高清av免费在线观看 | 亚洲人成精品久久久久 | 黄网站色欧美视频 | 一区精品在线 | 黄色精品视频 | 九月婷婷色 | 99中文视频在线 | 91在线小视频 | 99综合影院在线 | 久久久麻豆精品一区二区 | av片在线观看 | 亚洲精品久久视频 | 婷婷午夜天 | 免费在线观看av不卡 | 免费在线观看成人 | 国产精品xxxx18a99 | 日韩影视在线观看 | 国产精品高潮在线观看 | 久草观看 | 国产精品国产三级国产aⅴ无密码 | 午夜12点 | 精品一区二区av | 97超碰.com| 不卡中文字幕在线 | 狠狠干天天 | 国产亚洲精品无 | 人人插人人玩 | 久久久久色 | 99热这里只有精品免费 | 99久久婷婷国产精品综合 | 夜夜爽天天爽 | 国产高清免费av | 又粗又长又大又爽又黄少妇毛片 | 日韩高清精品免费观看 | 五月婷婷综合在线 | 日韩精品专区在线影院重磅 | 色婷婷视频在线 | 久久综合中文字幕 | 国产福利在线免费观看 | 中文字幕日韩在线播放 | 人人爽人人爽人人 | 国产成人av片| 国产精品福利小视频 | 久久免费影院 | 欧美日韩裸体免费视频 | 视频国产一区二区三区 | 久久久久在线观看 | 国产又粗又硬又长又爽的视频 | 日韩精品不卡 | 国产在线高清精品 | 午夜视频在线观看网站 | 一级a毛片高清视频 | 久久午夜电影 | 美女啪啪图片 | 久久久久久久久久久久国产精品 | 久久国产精品精品国产色婷婷 | 麻豆激情电影 | 久草在线最新免费 | 日韩欧美高清一区二区三区 | 97超碰人人模人人人爽人人爱 | 色综合久久综合中文综合网 | av天天干 | 中文字幕韩在线第一页 | 国产精品久久久毛片 | 欧美孕妇与黑人孕交 | 久久成人高清视频 | 久久草精品 | 国产美女精品视频 | 日韩精品一区二区三区三炮视频 | 国产精品久久久久久婷婷天堂 | 亚洲狠狠干 | 国产免费又粗又猛又爽 | 欧美久久久久久久久中文字幕 | 五月天最新网址 | 久久久999免费视频 日韩网站在线 | 国产一区二区电影在线观看 | 九九久久久 | 日韩天堂在线观看 | 久久综合狠狠综合 | 成人国产精品久久久 | 国产精品免费看久久久8精臀av | 97日日碰人人模人人澡分享吧 | 国产精品一区在线播放 | 久草视频视频在线播放 | 69久久久 | 91丨九色丨国产丨porny精品 | 欧美一区日韩精品 | 国产一卡久久电影永久 | 五月婷在线 | 欧美成人a在线 | 奇米影视777四色米奇影院 | 综合色在线观看 | 日日精品 | 亚洲精品福利在线观看 | 国产免费美女 | 日韩一区二区三区在线看 | 色黄www小说 | 婷婷久久综合九色综合 | 中文字幕第一页在线视频 | 激情视频在线观看网址 | 久久综合狠狠综合久久激情 | 在线观看免费视频 | 国产一级做a | 四虎影视8848dvd | 超碰免费观看 | av在线日韩 | 国产精品久久久视频 | 九九热只有这里有精品 | 亚洲最新av | www.久久久.cum | 人人澡人人模 | 右手影院亚洲欧美 | 久久精品成人欧美大片古装 | 欧洲成人av | 亚洲精品1234区 | 黄av在线 | 亚洲欧美日韩精品一区二区 | 国产一区二区高清视频 | 日韩在线观看高清 | 亚洲黄色激情小说 | 日韩av高清 | 中文字幕在线观看免费高清电影 | 亚洲人成在线观看 | 亚洲视频 中文字幕 | 国产不卡一 | 黄色片网站av | 亚洲精品免费观看视频 | 国产粉嫩在线 | 国产在线观看黄 | 亚洲国产三级在线观看 | 亚洲午夜久久久综合37日本 | 国产999| 精品久久久网 | 久草在线综合 | 男女啪啪网站 | 91自拍91| 亚洲综合网 | 成人在线观看av | 欧美精品在线观看 | 激情亚洲综合在线 | 手机在线看片日韩 | 久久免费av电影 | 伊人久在线 | 国产福利在线 | 国产视频一区在线免费观看 | 天天操一操| 888av| 国产精品区免费视频 | 一区二区不卡高清 | 91精品国产综合久久婷婷香蕉 | 99热最新地址 | 精品久久1 | 国产小视频网站 | 日韩av一区二区三区 | 国产精品男女视频 | 午夜精品久久久久久久99 | 精品久久久久免费极品大片 | 在线免费观看涩涩 | 久久tv| 日产乱码一二三区别免费 | 在线观看av的网站 | 亚洲 欧美 另类人妖 | 国产精品视频免费 | 久久精品免费 | 曰本免费av | 久久久久久久毛片 | 亚洲首页 | 99精品视频免费全部在线 | 亚洲精品合集 | 日本久久精品视频 | 国产成人精品久久二区二区 | 草久在线观看视频 | 国产成人黄色在线 | 91爱爱电影| 久久国内精品99久久6app | 国产色视频| 91日韩免费| 极品国产91在线网站 | 久久成 | 国产小视频你懂的 | 五月天天天操 | 3d黄动漫免费看 | 国产精品中文字幕av | 久久99精品久久久久久久久久久久 | 日日日干 | 99在线热播精品免费 | 亚洲性xxxx | 久草精品资源 | 亚洲美女在线一区 | 黄色免费视频在线观看 | 久久99国产精品免费 | 99久久久国产精品免费99 | 97超碰人人网 | 欧美9999 | 91大神免费视频 | 超碰成人网 | 日韩 精品 一区 国产 麻豆 | 麻豆视频在线免费看 | 99免费在线观看视频 | 日本久久精品 | 国产三级午夜理伦三级 | 久草网首页 | 久久视了| 香蕉视频日本 | 一级成人在线 | 日韩久久在线 | 操一草 | 97国产一区二区 | 91一区二区三区久久久久国产乱 | 国产操在线 | 久久久久欠精品国产毛片国产毛生 | 狠狠色综合网站久久久久久久 | 国产精品免费av | 91电影福利 | 免费观看xxxx9999片 | 日韩欧美视频二区 | 天天干夜夜夜操天 | 中文字幕免费高 | 天堂v中文 | 91中文字幕永久在线 | 久久精品视 | 免费观看一级特黄欧美大片 | 国产在线视频一区二区 | 久久黄色网| 99热国产在线观看 | 欧美午夜a | 精品一区在线 | 91成人免费看片 | 蜜桃麻豆www久久囤产精品 | 在线看成人av | 超碰在线97国产 | 91久久丝袜国产露脸动漫 | 97精品免费视频 | 一级淫片在线观看 | 97精品视频在线 | 免费观看成人av | 福利在线看片 | 黄色软件视频大全免费下载 | 在线观看亚洲成人 | 亚洲最大的av网站 | 午夜av免费看 | 丁香在线 | 日本性xxx | 中文字幕在线播放视频 | 午夜久久久精品 | 日韩av在线资源 | 欧美色精品天天在线观看视频 | 亚洲成av人片 | 九九久久国产 | 探花视频在线版播放免费观看 | 91pony九色丨交换 | 国产精品无av码在线观看 | 色网影音先锋 | 国内久久看 | 国产视频在线观看免费 | 久久国产精品第一页 | 午夜精品久久久久久99热明星 | 麻豆91精品视频 | 色视频网站在线观看一=区 a视频免费在线观看 | 成人黄色电影在线 | 色狠狠一区二区 | 中文字幕资源在线 | 色综合久久中文字幕综合网 | 中文字幕 欧美性 | 国产精品成久久久久 | 久草在线视频首页 | 久久综合久久综合这里只有精品 | 国产精品免费小视频 | 久在线 | 国产免费av一区二区三区 | 久久婷婷亚洲 | 国产精品久久久久一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 中文字幕在线观看av | 91黄色免费看 | 西西44人体做爰大胆视频 | 一区二区电影网 | 九九在线视频 | 国产精品成人免费精品自在线观看 | 成人午夜在线电影 | 婷婷国产视频 | 精品黄色在线 | 91丨九色丨首页 | 欧美一区二区免费在线观看 | 亚洲久草在线 | 日韩av免费在线看 | 国产手机免费视频 | 在线观看亚洲国产精品 | 久久99国产精品自在自在app | 日韩系列在线 | 91av成人| 女人高潮特级毛片 | 精品一区二区精品 | 午夜影院在线观看18 | 国产精品免费小视频 | 99久久精品电影 | 美女免费网视频 | 久人人| 亚洲精品国产精品久久99 | 亚洲 欧美日韩 国产 中文 | 中日韩三级视频 | 日韩免费电影 | 欧美色道 | 在线观看av小说 | 在线观看免费av片 | 综合久久久久久 | bbbb操bbbb| 在线成人免费av | 丁香婷婷电影 | 国产黄色精品 | 91免费观看国产 | 极品久久久久久久 | 91精品国产91热久久久做人人 | 久久激情视频 久久 | 久久爱影视i | 欧美日韩精品区 | 美女免费视频一区 | 伊人狠狠 | 国产在线精品一区二区三区 | 精品视频免费看 | 国产一区二区在线播放 | 日韩在线小视频 | 国产精品福利久久久 | 日韩一级片大全 | 精品久久久久久国产偷窥 | 国产午夜三级一二三区 | 久久久久久黄色 | 丁香5月婷婷 | 99九九热只有国产精品 | av大片免费看 | 国产成人专区 | 91黄色在线看 | 国产精品第三页 | 精品久久久久免费极品大片 | 97电影网手机版 | 国产精品黑丝在线观看 | 国产剧情一区二区 | 91精品国产三级a在线观看 | 国产一区视频免费在线观看 | 天天艹天天| 亚洲精品18p | 在线观看岛国av | 久久国产区 | 中文字幕av全部资源www中文字幕在线观看 | 国产精品久久久久影院 | 久久视频在线免费观看 | .国产精品成人自产拍在线观看6 | 久草在线视频首页 | 二区视频在线观看 | 手机看片久久 | 久久精彩视频 | 久久理论电影网 | 成人久久亚洲 | 日日爽日日操 | 中文字幕av全部资源www中文字幕在线观看 | 成人久久久电影 | 久久婷婷亚洲 | 在线观看91久久久久久 | 91av免费观看 | 久草在线这里只有精品 | 精品一区二区亚洲 | 日韩色视频在线观看 | 麻豆高清免费国产一区 | 狠狠色丁香久久婷婷综合丁香 | 久99久在线 | 中文不卡视频 | 一区二精品 | 天天操天天射天天 | 日韩三级视频在线看 | 成人一区不卡 | 国产精品四虎 | 国产精品一区二区无线 | 国产精品综合久久久 | 西西人体www444 | 狠狠狠色丁香婷婷综合激情 | www.久久成人 | 久久免费播放 | 亚洲精品乱码久久久久久蜜桃不爽 | 久久9精品 | 男女激情片在线观看 | 亚洲一区精品二人人爽久久 | 日本不卡一区二区 | 亚洲精品看片 | 激情视频亚洲 | av中文字幕在线免费观看 | 亚洲国产伊人 | 在线观看国产www | 美女免费网视频 | 91精品久久香蕉国产线看观看 | 日韩理论电影网 | 亚洲国产wwwccc36天堂 | 国产亚洲精品久久久久久大师 | 免费在线视频一区二区 | 欧美性色综合网站 | 午夜精品久久一牛影视 | 久久公开免费视频 | www日韩在线观看 | 国产精品专区一 | 成人va视频 | 国产97色| 国产精品一区二区久久精品爱涩 | 午夜精品一区二区三区在线视频 | 欧美精品在线视频 | 国产精品2019 | 久久久成人精品 | 亚洲第五色综合网 | 亚州激情视频 | 成人中心免费视频 | 亚洲精品视频网 | 国产999在线观看 | 九热精品| 天天草天天 | 玖玖在线精品 | 成人精品视频 | 成人少妇影院yyyy | 高清av网| 免费91麻豆精品国产自产在线观看 | 免费看黄在线 | 91电影福利| 日韩视频在线一区 | 精品亚洲视频在线 | 国产成人精品一区二区三区 | 成人黄色电影视频 | 天天射天天做 | 久久公开免费视频 | 日韩最新理论电影 | 日韩视频欧美视频 | 中文在线 | 涩涩网站免费 | 亚洲欧美日韩不卡 | 五月婷婷国产 | 精品一区二区三区香蕉蜜桃 | 五月婷婷一区二区三区 | 最近2019中文免费高清视频观看www99 | 中文字幕在线观看的网站 | 在线视频 国产 日韩 | 久久视频一区二区 | 久久久久成人精品亚洲国产 | 日日夜夜天天操 | 麻花天美星空视频 | 国产美腿白丝袜足在线av | 日韩免费电影 | 天无日天天操天天干 | 黄色.com| 波多野结衣视频在线 | 天天玩天天干天天操 | 久久精品日产第一区二区三区乱码 | 国产精品一区二区三区免费视频 | 国产综合精品一区二区三区 | 色姑娘综合网 | 精品国产精品久久一区免费式 | 国产最新网站 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 亚洲欧洲国产视频 | 黄色三级在线 | 亚洲国产精品500在线观看 | 91成人精品观看 | 久久免费精品 | 亚洲精选视频免费看 | 成人国产一区 | 亚洲伊人成综合网 | 怡红院av久久久久久久 | 97超碰在线久草超碰在线观看 | 国产一区二区手机在线观看 | 国产综合激情 | 欧美精品免费在线 | 99热999| 国产一区在线免费观看 | 日韩视频二区 | 久草精品视频 | 久久免费视屏 | 国产精品乱码久久久久久1区2区 | 91人人干 | 精品久久网站 | av久久久| 亚洲精品中文在线 | 精品国产一区二区三区久久久久久 | 国产粉嫩在线观看 | 亚欧日韩av| 天天操比 | 久久综合毛片 | 欧美性视频网站 | 毛片播放网站 | 99资源网| 亚洲综合最新在线 | 超碰激情在线 | japanese黑人亚洲人4k | 天天射天天色天天干 | 99精品在线免费视频 | 一区二区不卡视频在线观看 | 亚洲国产精品va在线 | 日韩av视屏在线观看 | 99精品视频免费全部在线 | 97人人艹 | 中文字幕观看av | 久久综合中文色婷婷 | 天天插夜夜操 | 99热在线国产精品 | 日韩中文字幕第一页 | 中文字幕免费看 | 国产 色| 亚洲高清91 | 日本在线观看一区 | 玖玖视频在线 | 天天人人综合 | 天天视频色版 | 在线超碰av | 91重口视频| 久久精品网站视频 | 亚洲国产精彩中文乱码av | 在线a亚洲视频播放在线观看 | 日韩成人精品 | 伊人色**天天综合婷婷 | 在线观看视频亚洲 | 韩日电影在线 | 亚洲,播放| 91精品国自产在线偷拍蜜桃 | 国产婷婷视频在线 | 亚洲精品 在线视频 | av电影在线不卡 | 亚洲精品成人网 | 国产精品资源网 | 国产精品成人免费精品自在线观看 | 四虎国产视频 | 在线观看国产日韩欧美 | 国产成人精品一区二 | 成人午夜精品 | 97视频免费看 | 99久热精品| 亚洲国产免费 | 天天操天天爱天天干 | 97偷拍视频| 激情偷乱人伦小说视频在线观看 | 91麻豆精品国产91久久久久 | 国产成人亚洲在线观看 | 久久系列 | 欧美在线视频第一页 | 日韩中文字幕免费视频 | zzijzzij亚洲成熟少妇 | 日韩国产精品久久 | 91成人精品一区在线播放69 | 国产精品99久久久久 | 欧美男男激情videos | 欧美日韩视频在线观看一区二区 | 久久久久久久久网站 | 成人网在线免费视频 | 精品国模一区二区三区 | 欧美看片| 丁香婷婷激情网 | 亚洲在线视频观看 | 欧美一区二区三区在线视频观看 | 在线免费观看视频一区二区三区 | 国产专区免费 | 国产亚洲精品综合一区91 | 午夜丁香网 | 日日日日| 国产一区二区久久久久 | 免费av大全 | 久久久久久久久久久精 | 9幺看片 | 日韩精品中文字幕一区二区 | 国产精品一区在线播放 | 808电影免费观看三年 | 欧美一二区在线 | 欧美日韩视频在线观看免费 | 亚洲国产精品久久久久 | 国内精品久久久久国产 | 日韩精品一区二区三区免费观看视频 | 国产手机在线 | 免费进去里的视频 | 欧美99精品| 开心丁香婷婷深爱五月 | 国产精品美乳一区二区免费 | 人人爱人人添 | 免费网站v | 久久久精品 一区二区三区 国产99视频在线观看 | 91中文字幕在线 | 免费av在线网站 | 久久99精品国产麻豆婷婷 | 久久久久国产精品免费免费搜索 | 狠狠ri| 蜜臀av夜夜澡人人爽人人桃色 | 久久一区二区三区国产精品 | 亚洲最大激情中文字幕 | 欧美精品v国产精品 | 91麻豆精品国产91久久久使用方法 | 久久精品久久99精品久久 | 免费av在线| 婷婷日日 | 国产一区欧美一区 | 手机av电影在线观看 | 午夜av影院 | 91人人爽人人爽人人精88v | 97电影手机 | 精品在线二区 | 久久免费的视频 | 久久久久久久久久久国产精品 | 最近在线中文字幕 | 国产欧美在线一区二区三区 | 在线激情小视频 | 国产成人在线免费观看 | av高清在线 | 夜夜看av | 正在播放国产精品 | 亚洲资源在线观看 | 蜜桃视频日韩 | 在线国产91 | 亚洲免费av电影 | 国产黄色特级片 | 成人9ⅰ免费影视网站 | 免费影视大全推荐 | 日日摸日日添日日躁av | 九九免费观看全部免费视频 | 九九久久婷婷 | 男女日麻批 | 91影视成人 | 免费视频黄 | 国产色视频 | 欧美91成人网 | 人人插人人做 | 久久久综合精品 | 国产高清免费视频 | 天天干人人干 | 日本中文在线 | 999国产精品视频 | 日韩欧美在线观看一区二区三区 | 久久久久国产一区二区三区 | 国产免费亚洲高清 | 国产偷国产偷亚洲清高 | 日韩av免费在线电影 | 色偷偷网站视频 | 一区二区在线不卡 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 91九色九色 | 国产91免费在线观看 | 777久久久 | 99精品久久久久久久久久综合 | 黄色特级片 | 免费裸体视频网 | 青青草在久久免费久久免费 | 91秒拍国产福利一区 | 久久久久久国产精品久久 | 免费人成在线观看 | 国产又黄又爽无遮挡 | 日韩有码欧美 | 国产精品99久久久 | 亚洲一级影院 | 午夜av激情 | 四虎www. | 五月激情在线 | 中文资源在线官网 | 91看成人| 亚洲视频在线播放 | 视频国产区| 久草视频国产 | 日韩成人免费电影 | 久章草在线观看 | 深爱激情五月网 | 91精品国产福利在线观看 | 在线一区电影 | 国产最新视频在线观看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 狠狠操精品 | 国产成人精品亚洲 | 操操操人人| 日本精品久久久一区二区三区 | 黄色亚洲精品 | 91精品国产自产在线观看 | 欧美午夜寂寞影院 | 亚洲电影院 | 天堂av在线网 | 亚洲国产影院av久久久久 | 免费a视频在线观看 | 久久久精品网站 | 久久精视频 | 欧美一区在线观看视频 | 91九色网站 | 天天干,狠狠干 | 日韩欧美一二三 | 久久国产经典视频 | 激情网五月婷婷 | 六月色婷 | 久久久久久福利 | 色视频网站免费观看 | 狠狠的操狠狠的干 | 99热精品国产一区二区在线观看 | 人人超碰免费 | 蜜桃传媒一区二区 | 黄色国产在线观看 | 精品高清美女精品国产区 | 日韩欧美电影网 | 9999毛片| 久久成人18免费网站 | 最新国产在线视频 | 在线精品视频免费播放 | 中文字幕一区二区三区乱码不卡 | 黄色一级在线免费观看 | 69精品在线 | 91色蜜桃 | 国产黄大片在线观看 | 日韩在线免费小视频 | 手机在线中文字幕 | 午夜手机电影 | 成人毛片一区二区三区 | 色狠狠狠 | 六月久久婷婷 | 久久手机看片 | 色婷在线 | 亚洲国产成人在线播放 | 欧美资源在线观看 | 欧美性天天 | 国产高清视频免费最新在线 | 91chinesexxx | 久久福利电影 | 久久在线精品视频 | 青草草在线视频 | 精品中文字幕在线 | 亚洲精品xxx | 波多野结衣电影一区二区 | 久久看毛片 | 韩日电影在线 | 中文在线天堂资源 | 国产自偷自拍 | 久久免费视频8 | 人人爽久久涩噜噜噜网站 | 国产在线高清视频 | av成人在线网站 | 伊人国产女 | 免费看一及片 | 国产精品2区 | 美女黄频在线观看 | 国产高清第一页 | 天天操天天干天天 | 成人在线视频免费观看 | 日韩成人av在线 | 天天操综合网 | 9ⅰ精品久久久久久久久中文字幕 | 日韩肉感妇bbwbbwbbw | 色综合久久久久久中文网 | 国产精品毛片一区二区 | 免费久久视频 | 91av在线视频播放 | 四虎国产精 | 国产一区二区视频在线 | 色综合久久精品 | 一级片色播影院 | 国产麻豆传媒 | 日韩三级不卡 | 日本二区三区在线 | 久久国产电影院 | 99亚洲精品视频 | 97在线视频免费观看 | 中文字幕电影高清在线观看 | 四虎在线观看精品视频 | 精品国产欧美一区二区 | 午夜精品久久久久久久久久久 | 日日夜夜天天 | 欧洲精品视频一区 | 天天综合天天做 | 亚洲色影爱久久精品 | 在线免费观看国产黄色 | 岛国大片免费视频 | 中文字幕资源站 | 日韩精品一区二区三区三炮视频 | 高清久久久久久 | 午夜精品久久久久久久99热影院 | 精品久久一二三区 | 中文字幕日本特黄aa毛片 | 九九色综合 | 天天操夜 | 免费成人av网站 | 日本午夜免费福利视频 | 久草在线播放视频 | 国产一区二区久久久 | 久久久999免费视频 日韩网站在线 | 天天爱天天射天天干天天 | 久久久国产精品久久久 | av福利超碰网站 | 欧美少妇的秘密 | 亚洲精品国产精品乱码不99热 | 91久久人澡人人添人人爽欧美 | 国产精品24小时在线观看 | 色综合久久中文字幕综合网 | 毛片精品免费在线观看 | 成年人看片网站 | 伊人天天色| 美女免费黄网站 | 九九有精品 | 五月天精品视频 | 日韩欧美区 | 91在线中文字幕 | 国产日韩欧美视频在线观看 | 色妞久久福利网 | 国产一级在线观看视频 | 婷婷色网视频在线播放 | 中文字幕传媒 | 日韩高清网站 | 操操色 | 久久久精品国产免费观看同学 | 97超碰中文字幕 | av看片网址 | 女人高潮一级片 | 日韩高清久久 | 欧美日韩中文字幕在线视频 | 91黄在线看| 亚洲欧洲精品视频 | 99视频免费 | av网站在线观看免费 | 国产精品剧情 | 在线小视频你懂的 | 欧洲精品码一区二区三区免费看 | 亚洲视频 中文字幕 | 又粗又长又大又爽又黄少妇毛片 | 国产成人精品区 | 综合在线色 | 日韩免费播放 | 午夜免费在线观看 | 亚洲国产av精品毛片鲁大师 | 日韩高清在线一区 | 日日天天av | 麻豆91在线播放 | 亚洲精品一区二区三区新线路 | 在线最新av| 成人av资源网站 | 免费av网址大全 | 天天操月月操 | 成人在线播放免费观看 | 国产一二三精品 | 黄色在线观看网站 | 国产精品一区二区久久国产 | 99视频在线 | 丁五月婷婷 | 欧美激情第八页 | 91一区在线观看 | 97在线观看视频免费 | 在线观看日本韩国电影 | 综合网天天色 | 免费在线观看av网站 | 一区二区精品在线 | 国产人成在线视频 | 欧美日韩久| 一区二区三区免费 | 色婷婷综合久久久久 | 亚洲欧美日韩精品久久久 | 天天操天天色天天射 | 久久久在线观看 | 国产精品视频不卡 | 日韩区在线观看 | 日韩av在线不卡 | 国产视频精品在线 | 久久久久久久久久久久久影院 | 精品一区 在线 | 午夜在线免费视频 | 中文字幕在线播放一区二区 | 97在线观看 | 国产亚洲精品精品精品 | 日本色小说视频 | 亚洲精选在线 | 日韩视频在线观看免费 | 欧美在线一二区 | 久草视频免费看 | 国产品久精国精产拍 | 综合av在线 | 久久久精品一区二区 | 成 人 黄 色 视频播放1 | 久久一区二区三区超碰国产精品 | 国产99免费| 超碰电影在线观看 | 色狠狠婷婷 | 五月在线 | 久草干| 97精品国产97久久久久久久久久久久 | 99国内精品久久久久久久 | 久久久国产99久久国产一 | 992tv又爽又黄的免费视频 | 香蕉久草| 亚洲黄色区 | 人人插人人舔 | 免费精品视频 | 深夜国产在线 | 在线免费色视频 | 欧美粗又大 | 黄色一级大片在线观看 | 国产高清成人 | 亚洲精品乱码久久久久久高潮 | 成人影视免费看 | 精品产品国产在线不卡 | 在线观看黄色 | 久艹视频在线免费观看 | av免费线看 | 日免费视频 | 免费在线国产 | 5月丁香婷婷综合 | 亚洲欧美在线综合 | 日本精品久久久久中文字幕 | 久久久久免费精品国产小说色大师 | 亚洲欧美国产精品久久久久 | 综合精品久久久 | 日韩1页 | 青青射| 美女网站久久 | 久久人人爽爽人人爽人人片av | 久久少妇av | 伊人五月天婷婷 | 99久热 | 欧美精品二区 | 国产不卡在线视频 | 日韩欧美在线中文字幕 | 天天操网站 | 久久不射网站 | 亚洲 欧美 综合 在线 精品 |