cJSONLinux C

cJSON官网:http://sourceforge.net/projects/cjson/

下面是使用cJSON的例子:

/*=============================================================== * copyright (C) 2015 All rights reserved. * * 文件名称:test_cjson.c * 创 建 者:Gavin (E-mail:gavinlu1015@gmail.com) * 创建日期:2015年06月1日 * 描 述:C语言JSON简单用例 * ================================================================*/
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"

void create_cjson(char **out)
{
    cJSON *root,*fmt;

    /* 创建一个json */
    root = cJSON_CreateObject();
    /* 定义json root */
    cJSON_AddItemToObject(root,"USR_INFO",fmt = cJSON_CreateObject());
    /* 成员 int型 */
    cJSON_AddNumberToObject(fmt,"usrid",7);
    /* 成员 string型 */
    cJSON_AddStringToObject(fmt,"E-mail","gavinlu1990@gamail.com");
    /* 将JSON转换成string型 */
    *out = cJSON_Print(root);
    /* 删除JSON占用内存 */
    cJSON_Delete(root); 
}

void parse_cjson(char *out)
{
    cJSON *out_json,*root,*format;
    char *parse_result;
    char *E_mail;
    int id;

    /* 将string型JSON进行转换 */
    out_json = cJSON_Parse(out);
    if (!out_json) {
        printf("Error before: [%s]\n",cJSON_GetErrorPtr());
    } else {
        format = cJSON_GetobjectItem(out_json,"USR_INFO");
        /* 获取usrid、E-mail信息 */
        id = cJSON_GetobjectItem(format,"usrid")->valueint;
        E_mail = cJSON_GetobjectItem(format,"E-mail")->valuestring;

        free(out_json);
    }

    printf("\n解析结果:\n");
    printf("%d\n",id);
    printf("%s\n",E_mail);
}

int main(int argc,const char *argv[])
{
    char *out = NULL;
    /* 构建json */
    create_cjson(&out);
    printf("构成JSON:\n%s\n",out);    
    /* 解析json */
    parse_cjson(out);

    return 0;
}

/** * 编译: * gcc test_json.c cJSON.c -o test_json -lm * (PS:cJSON.c cJSON.h从下载包提取出来) */

结果:

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...