我是靠谱客的博主 心灵美火车,最近开发中收集的这篇文章主要介绍linux键值头文件,linux下用cjson实现对数据键值对的封装保存,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先需要下载封装好的cjson包包括 cjson.h cjson.c

为方便大家我已上传

下载地址如下

http://download.csdn.net/detail/wuheshi/8353075

编程时加入头文件cjson.h 就可以调用cjson.c里面的函数

打包json数据和解析json数据例子如下:

简单编码实例如下

#include "../../include/myhead.h"

#include "../../include/cJSON.h"

/*对json数据的解析取出其中的有用信息*/

int undo_cjson_pack(char text[],int id,int ctlcmd)

{

cJSON *json, *json_value;

// 解析数据包

json = cJSON_Parse(text);

if (!json)

{

printf("Error before: [%s]n",cJSON_GetErrorPtr());      //判断是否是json数据

}

else

{

// 解析ID值

json_value = cJSON_GetObjectItem( json , "ID");

if( json_value->type == cJSON_Number )

{

// 从valueint中获得结果

printf("value:%drn",json_value->valueint);

id = json_value->valueint  ;

}

// 解析 控制量

json_value = cJSON_GetObjectItem( json , "ctl_cmd");

if( json_value->type == cJSON_Number )

{

// valuestring中获得结果

printf("cmd:%drn",json_value->valueint);

ctlcmd =json_value->valueint;

//  printf("%sn",cmd);

}

// 释放内存空间

cJSON_Delete(json);

}

return 0;

}

/*打包数据键值对成json格式再传给字符串*/

char * do_cjson_pack(int idnum,char *str)

{

// 创建JSON Object

cJSON *root = cJSON_CreateObject();

// 加入节点(键值对),节点名称为ID,节点值为123.4

cJSON_AddNumberToObject(root,"ID",idnum);

cJSON_AddStringToObject(root,"ctl_cmd",str);

// 打印JSON数据包

char *out = cJSON_Print(root);

printf("%sn",out);

// 释放内存

cJSON_Delete(root);

return out;

}

/*

int main()

{

char text[] = "{"ctl_cmd":6,"ID":1}";

char *putout = NULL;

int cmd_str = 1;

int num = 9;

putout = do_cjson_pack(num,cmd_str) ;

undo_cjson_pack(text);

printf("%sn",putout);

free(putout);

return 0;

}

*/

程序有点小改动,运行时有错误的话 可能数据格式有点问题,这里解释作用

最后

以上就是心灵美火车为你收集整理的linux键值头文件,linux下用cjson实现对数据键值对的封装保存的全部内容,希望文章能够帮你解决linux键值头文件,linux下用cjson实现对数据键值对的封装保存所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部