linux开源项目-cJSON

cJSON是一个小巧且高效的C语言JSON解析器和生成器,仅包含一个C源文件和头文件。它适用于内存受限的系统,并且易于理解和集成到现有项目中。该项目在SourceForge上维护,是学习C语言和JSON处理的好资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。

  cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。

  项目主页: http://sourceforge.net/projects/cjson/

JSON介绍:

英文- http://www.json.org/

中文- http://www.json.org/json-zh.html


扩展:

1、增加了[1,2,3,]和{"one":1,}最后那个逗号的支持。

code(增加了斜体部分):

/* Build an array from input text. */
static const char *parse_array(cJSON *item,const char *value)
{
        cJSON *child;
        if (*value!='[')        {ep=value;return 0;}    /* not an array! */


        item->type=cJSON_Array;
        value=skip(value+1);
        if (*value==']') return value+1;        /* empty array. */


        item->child=child=cJSON_New_Item();
        if (!item->child) return 0;              /* memory fail */
        value=skip(parse_value(child,skip(value)));     /* skip any spacing, get the value. */
        if (!value) return 0;


        while (*value==',')
        {
                if (*(value+1)==']') value=value + 1;
                else {

                cJSON *new_item;
                if (!(new_item=cJSON_New_Item())) return 0;     /* memory fail */
                child->next=new_item;new_item->prev=child;child=new_item;
                value=skip(parse_value(child,skip(value+1)));
                if (!value) return 0;   /* memory fail */
                }
        }


        if (*value==']') return value+1;        /* end of array */
        ep=value;return 0;      /* malformed. */
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值