使用c的JSON解析器

时间:2019-04-29 10:41:45

标签: c json parsing jsonparser

我必须使用c代码(不是lib,因为要使事情看起来尽可能简单)来解析JSON,以进行一些实时处理。下面是需要解析的数据,我将从代码本身生成的一些计算中获取这些数据。请帮帮我。

n - j - current_odd_count

2 个答案:

答案 0 :(得分:2)

这是我使用的两个C库。

  1. https://github.com/DaveGamble/cJSON:这可以解析您的字符串并可以准备json字符串。

  2. https://github.com/zserge/jsmn:仅用于解析json字符串。

两个库都有详细的文档说明,并提供测试代码。

答案 1 :(得分:0)

似乎您只想提取“ Freq”值,在这种情况下,此代码就足够了:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *str = "[{\"Letter\": 0 ,\"Freq\": 2858},{\"Letter\" : 31,\"Freq\" : 0}]";

int main(void)
{
    char *ptr = str;
    long value;

    while (ptr) {
        ptr = strstr(ptr, "\"Freq\"");
        if (ptr == NULL) {
            break;
        }
        ptr = strchr(ptr, ':');
        if (ptr == NULL) {
            break;
        }
        ptr++;
        value = strtol(ptr, &ptr, 10);
        if (*ptr != '}') {
            break;
        }
        ptr++;
        printf("%lu\n", value);
    }
    return 0;
}