如何用c解析json文件

我有一个json文件,如下所示:

    { 
       "author":"John",
       "desc": "If it is important to decode all valid JSON correctly  
and  speed isn't as important, you can use the built-in json module,   
 orsimplejson.  They are basically the same but sometimes simplej 
further along than the version of it that is included with 
distribution."
       //"birthday": "nothing" //I comment this line
    }

该文件是由另一个程序自动创建的。 我如何用Python解析它?


我无法想象一个json文件“由其他程序自动创建”将包含注释里面。 因为json规范根本没有定义任何评论,并且这是由设计决定的,所以没有json库会输出带注释的json文件。

这些评论通常会在稍后由人类添加。 在这种情况下没有例外。 OP在他的帖子中提到: //"birthday": "nothing" //I comment this line

所以真正的问题应该是,我如何正确评论json文件中的某些内容,同时保持其对规范的遵从性,从而与其他json库兼容?

答案是,将您的字段重命名为另一个名称。 例:

{
    "foo": "content for foo",
    "bar": "content for bar"
}

可以改成:

{
    "foo": "content for foo",
    "this_is_bar_but_been_commented_out": "content for bar"
}

这在大多数情况下都可以正常工作,因为消费者很可能会忽略意外的字段(但并不总是,这取决于您的json文件消费者的实现,所以YMMV。)


一种方法是将非常接近的JSON文本转换为实际的JSON文本,然后将其传递给解析器,如下所示:

input_str = re.sub(r'n', '', input_str)
input_str = re.sub(r'//.*n', 'n', input_str)
data = json.loads(input_str)

我没有亲自使用它,但jsoncomment python包支持使用注释解析JSON文件。

您可以使用它来代替JSON解析器,如下所示:

parser = JsonComment(json)
parsed_object = parser.loads(jsonString)
链接地址: http://www.djcxy.com/p/3397.html

上一篇: How to parse json file with c

下一篇: “EMALFORMED Failed to read bower.json” "unexpected token /"