是否可以在编程语言C中仅解析一个JSON键/字段/属性

时间:2016-01-07 19:02:19

标签: c json

C程序是否可以“读取”(通过使用C JSON解析器)只是存储在char []中的JSON对象的一个​​属性? 我想只读取JSON对象的一个​​strig字段,因为我需要知道它的值来决定用什么类型的 struct 来反序列化整个JSON对象。

我试图反序列化仅包含 int double 类型的JSON对象。我将它们反序列化为具有此类声明的“预定义”结构,例如:

struct obj{
    int a;
    int b;
    double c;
};

但是现在我想使用两种不同的结构:

struct obj1{
    int a;
    char b[40];
    double c;
    char d[15];
};

struct obj2{
    int a;
    struct in b;
    double c;
    char d[15];
};

struct in1{
   int ina;
   int inb;
   char inc[20];
};

用于反序列化JSON对象的结构由'string' char d [15] 的值决定。在反序列化JSON之前,我需要知道它的价值。

JSON字符串将类似于:

{"a":"...", "c":"pure string or another object", "c":"...", "d":"info about the type"}

我感到困惑,因为我认为C JSON解析器无法执行此操作,因为它们不是面向对象的。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。

大多数可用的C JSON解析器都提供了一个'标准'C Struct,描述了一个JSON值(键,属性等......)。如果你创建了这种类型的变量,就可以从JSON对象中解析('read')一个值,然后对其进行操作或只使用它的值。