zoukankan      html  css  js  c++  java
  • cjson库的移植和使用

    json可以使用普遍用的比较多的cison

    也可以使用别人写的比较好用的一些现成的,比如庆科MICO的json处理

    一、cjson

    下载链接 https://github.com/DaveGamble/cJSON

    下载完成将其中的cJson.c cJson.h复制到自己的项目中引用即可;

    1.字符串转json格式

    cJSON *json = cJSON_Parse(str)

         a.字符串指针类型

         b.返回的cJSON指针类型

    2.在指定的cJSON通过key查找value

    const char *str = cJSON_Print(cJSON_GetObjectItem(json, "age"))

          a.json为原始cJSON类型指针,age为key,str为返回接收的char *

          b.如果返回的value为int 等整型,可以调用atoi(const char * str)函数

                  int x = atoi(str);

    cJSON_Print函数返回值的字符串会加双引号,解决方案为:

    cJSON *json;
    json = cJSON_Parse(text);

    cJSON_GetObjectItem(json, "Action")->valuestring

    这样返回的值没有双引号就是key对应的字符串本身。

     二、MICO json

    链接:https://pan.baidu.com/s/1wp056fwrK8WUeyyk1zKgcg
    提取码:ulr5

    详细官方说明

    http://developer.mxchip.com/handbooks/117

    一个简单的demo

    json_c demo
    
    #include <stdio.h>
    #include "json.h"
    #include <stdint.h>
    int main()
    {
    char buf[] = "
    
    {"name":"zhangsan"}
    ";
    json_object *new_obj = NULL;
    char body[40];
    new_obj = json_tokener_parse(buf);//字符串类型转json类型
    if (is_error(new_obj))
    {
    memset(body, 0x00, 40);
    sprintf(body, "
    
    {"dat":"err"}
    ");
    }
    json_object_object_foreach(new_obj, key, val)//通过json中的key查找value值
    {
    if (!strcmp(key, "name"))
    
    { printf("name:%s
    ",json_object_get_string(val)); //取出当前value值 }
    }
    return 0;
    }
    
    其中非常常用的三个函数:
    1.字符串转json类型
    json_tokener_parse
    2.轮询json中的所有键值对,其实这个不是个函数,是通过一个宏实现的轮询
    json_object_object_foreach
    3.取出当前键值对中的值,返回值为字符串类型
    json_object_get_string
    他只是向前航行,脚下是沉静碧蓝的大海,而头顶是金色的太阳。
  • 相关阅读:
    Javascript图片预加载详解
    Canvas入门(3):图像处理和绘制文字
    CSS强制英文、中文换行与不换行 强制英文换行
    数组分隔成两个一组
    scrollview嵌套tableview
    审核被拒:1. 1 Safety: Objectionable Content ;3. 1.1 Business: Payments
    流程控制-用布尔值
    xcode代码提示没了
    sourceTree回退撤销commit
    iOS使用mask切割不规则图案
  • 原文地址:https://www.cnblogs.com/bliss-/p/12377094.html
Copyright © 2011-2022 走看看