美文网首页
5 Json合法性校验

5 Json合法性校验

作者: Savior2016 | 来源:发表于2018-08-23 15:25 被阅读93次

    json不合法的时候,由字符串转成json可能会导致程序复位,没有试cjson是不是这样,cjson也有别的bug。而C语言又不能try。为了防止意外的发送了不合法的json字符串,就想到了校验它合法性的方法。
    在网上找到一个开源的项目,所以不用自己造轮子了:原项目地址

    json checker
    在此基础上,自己改了下写成了一个函数:
    uint8_t Jchecker(char* jcdata)
    {
      /*
        Read STDIN. Exit with a message if the input is not well-formed JSON text.
    
        jc will contain a JSON_checker with a maximum depth of 20.
    */
        JSON_checker jc = new_JSON_checker(20);
        for (int i=0;;i++) 
        {
            int next_char = jcdata[i];
            if (next_char <= 0) {
                printf("JSON_checker_char:json correct\n");
                return 0;
            }
            if (!JSON_checker_char(jc, next_char)) {
                printf("JSON_checker_char: syntax error\n");
                return 1;
            }
        }
        if (!JSON_checker_done(jc)) {
            printf("JSON_checker_end: syntax error\n");
            return 1;
        }
    }
    

    唯一有点坑的地方是,它对结尾的"}"不敏感,没有也不会报错。

    相关文章

      网友评论

          本文标题:5 Json合法性校验

          本文链接:https://www.haomeiwen.com/subject/dlqmiftx.html