如何在C语言中使用sscanf解析json?

我有以下json格式的字符串。

{“num”:1, “data”:{“city”: “delhi”}}。

我需要使用以下方法来获取 “num “键的值。sscanf. 这是我的尝试 我知道这是不正确的。但我不知道怎么做。

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

int main(void) {

    char *str = "{\"num\":1,\"data\":{\"city\":\"delhi\"}}";
    char *ret = malloc(sizeof(char) * 10);

    sscanf(str, "{\"num\":%s, %s" , ret);

    printf("%s", ret);
    return 0;
}

有什么建议吗?

解决方案:

sscanf(str, "{\"num\":%s, %s" , ret);

是错误的,首先你有两个”%s”,但你只给了一个位置来保存字符串(”%s”)。撤退),而且它并没有像你所期望的那样提取出

你想

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

int main(void) {

    char *str = "{\"num\":1,\"data\":{\"city\":\"delhi\"}}";
    char *ret = malloc(10); /* by definition sizeof(char) is 1 */

    if (sscanf(str, "{\"num\":%9[^,]" , ret) == 1)
        printf("value is '%s'\n", ret);

    free(ret);
    return 0;
}

汇编和执行

/tmp % gcc -Wall p.c
/tmp % ./a.out
value is '1'
/tmp % 

但要用 扫描f 解析的限制是

给TA打赏
共{{data.count}}人
人已打赏
未分类

java AtomicInteger decrementAndGet不能如期工作。

2022-9-8 23:39:39

未分类

在评估预请求脚本时出现了一个错误。ReferenceError: randomNo is not defined

2022-9-8 23:39:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索