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解析器无法执行此操作,因为它们不是面向对象的。
答案 0 :(得分:0)
是的,这是可能的。
大多数可用的C JSON解析器都提供了一个'标准'C Struct,描述了一个JSON值(键,属性等......)。如果你创建了这种类型的变量,就可以从JSON对象中解析('read')一个值,然后对其进行操作或只使用它的值。