c语言如何定义一个json数据类型,用于在C中表示JSON的数据类型

我一直在试图将这个数据看成一段时间,也许我只是盯着太久了?

无论如何,现在的问题是找到一个很好的方式来表示JSON,并且在您读取之前,请注意,我对图书馆不感兴趣,所以我想在原始的C或C(C 11是不错的),没有提升,没有libjson我知道他们,由于这个问题的范围之外的原因我不能(/ wont)添加依赖关系.

现在已经清理了,让我告诉你一些关于这个问题,我已经尝试了这么远.

问题是找到一个很好的方式来表示JSON在C中,这是一个有点有问题的原因是JSON是超级松散的类型,而C是非常困难的类型.考虑JSON一秒钟,什么是JSON真的能够类似的?

>号码(例如42或3.1415)

>字符串(例如“我的字符串”)

> Array(例如[]或[1,3.1415,“我的字符串”))

>对象(例如{}或{42,3.1415,“我的字符串”,[],[1,3.1415,“我的字符串”}}

那么这意味着有两个“raw”类型,Number和String以及两个容器类型Array和Object.原始类型是相当简单的,而容器类型在C/C++中变得棘手,因为它们可能并且可能包含不同类型的元素,因此,任何内置的语言类型都不够,数组不能保持不同类型的元素.这也适用于STL类型(列表,向量,数组等),(除非它们具有多态等式).

所以JSON中的任何容器都可以容纳任何类型的json类型,这几乎都是它的一部分.

我原型,或尝试,为什么它不工作

我的第一个天真的想法是使用模板,所以我设置一个json对象或json节点类型,然后使用模板来决定它的内容,因此它将具有如下结构:

template

class JSONNode {

const char *key;

T value;

}

虽然这似乎是有希望的,但是当开始使用它时,我意识到当我尝试

你可能感兴趣的:(c语言如何定义一个json数据类型,用于在C中表示JSON的数据类型)