資源簡介
包含創建好的cJson的.C文件及.h文件及測試示例,開發者可依據測試示例直接進行調用

代碼片段和文件信息
/*
??Copyright?(c)?2009?Dave?Gamble
??Permission?is?hereby?granted?free?of?charge?to?any?person?obtaining?a?copy
??of?this?software?and?associated?documentation?files?(the?“Software“)?to?deal
??in?the?Software?without?restriction?including?without?limitation?the?rights
??to?use?copy?modify?merge?publish?distribute?sublicense?and/or?sell
??copies?of?the?Software?and?to?permit?persons?to?whom?the?Software?is
??furnished?to?do?so?subject?to?the?following?conditions:
??The?above?copyright?notice?and?this?permission?notice?shall?be?included?in
??all?copies?or?substantial?portions?of?the?Software.
??THE?SOFTWARE?IS?PROVIDED?“AS?IS“?WITHOUT?WARRANTY?OF?ANY?KIND?EXPRESS?OR
??IMPLIED?INCLUDING?BUT?NOT?LIMITED?TO?THE?WARRANTIES?OF?MERCHANTABILITY
??FITNESS?FOR?A?PARTICULAR?PURPOSE?AND?NONINFRINGEMENT.?IN?NO?EVENT?SHALL?THE
??AUTHORS?OR?COPYRIGHT?HOLDERS?BE?LIABLE?FOR?ANY?CLAIM?DAMAGES?OR?OTHER
??LIABILITY?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?IN
??THE?SOFTWARE.
*/
/*?cJSON?*/
/*?JSON?parser?in?C.?*/
#include?“cJSON.h“
#include?“math.h“
#include?
#include?
#include?
static?const?char?*ep;
const?char?*cJSON_GetErrorPtr(void)?{return?ep;}
static?int?cJSON_strcasecmp(const?char?*s1const?char?*s2)
{
if?(!s1)?return?(s1==s2)?0:1;if?(!s2)?return?1;
for(;?tolower(*s1)?==?tolower(*s2);?++s1?++s2) if(*s1?==?0) return?0;
return?tolower(*(const?unsigned?char?*)s1)?-?tolower(*(const?unsigned?char?*)s2);
}
static?void?*(*cJSON_malloc)(size_t?sz)?=?malloc;
static?void?(*cJSON_free)(void?*ptr)?=?free;
static?char*?cJSON_strdup(const?char*?str)
{
size_t?len;
char*?copy;
len?=?strlen(str)?+?1;
if?(!(copy?=?(char*)cJSON_malloc(len)))?return?0;
memcpy(copystrlen);
return?copy;
}
void?cJSON_InitHooks(cJSON_Hooks*?hooks)
{
if?(!hooks)?{?/*?Reset?hooks?*/
cJSON_malloc?=?malloc;
cJSON_free?=?free;
return;
}
cJSON_malloc?=?(hooks->malloc_fn)?hooks->malloc_fn:malloc;
cJSON_free ?=?(hooks->free_fn)?hooks->free_fn:free;
}
/*?Internal?constructor.?*/
static?cJSON?*cJSON_New_Item(void)
{
cJSON*?node?=?(cJSON*)cJSON_malloc(sizeof(cJSON));
if?(node)?memset(node0sizeof(cJSON));
return?node;
}
/*?Delete?a?cJSON?structure.?*/
void?cJSON_Delete(cJSON?*c)
{
cJSON?*next;
while?(c)
{
next=c->next;
if?(!(c->type&cJSON_IsReference)?&&?c->child)?cJSON_Delete(c->child);
if?(!(c->type&cJSON_IsReference)?&&?c->valuestring)?cJSON_free(c->valuestring);
if?(c->string)?cJSON_free(c->string);
cJSON_free(c);
c=next;
}
}
/*?Parse?the?input?text?to?generate?a?number?and?populate?the?result?into?item.?*/
static?const?char?*parse_number(cJSON?*itemconst?char?*num)
{
double?n=0sign=1scale=0;int?subscale=0signsubscale=1;
if?(*num==‘-‘)?sign=-1num++; /*?Has?sign??*/
if?(*num==‘0‘)?num++; /*?is?zero?*/
if?(*num>=‘1‘?&&?*num<=‘9‘) do n=(n*10.0)+(*num++?-‘0‘); while?(*num>=‘0‘?&&?*num<=‘9‘); /*?N
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????23390??2018-07-27?08:52??CJson\cJSON.c
?????文件???????6941??2014-08-26?21:53??CJson\cJSON.h
?????文件???????1359??2018-11-19?09:53??CJson\JsonEncode.c
?????目錄??????????0??2018-11-19?09:55??CJson
-----------?---------??----------?-----??----
????????????????31690????????????????????4
評論
共有 條評論