在cJSON中,我们可以以键值格式存储数据。因此,使用key可以很容易地获取值。
{
"age":35
}
我想用C语言将数据以表格式存储到文件中。
A列 | B列 | name1 | 22 |
---|---|
name2 | 23 |
name2 | 33,22,34 |
正如@mmeisson所建议的,使用CSV格式将是最简单的,并且只需要少量的C语言代码来实现。假设一个文本文件包含以下内容:
name1, 22
name2, 23
这可以很容易地通过调用printf()产生:
for (int i = 0; i < col_a_count; i++)
{
printf("%s, %d n", col_a_name[i], col_b_value[i]);
}
要读回数据(我认为这在某些时候是必要的),那么您可以从文本文件中读取每一行,并使用","分隔符。
然而,问题是如何处理任何给定名称的多个值。例如,第二个例子"name2"包含"33"、"22"、"34"三个条目。所以如果你选择了"作为分隔符,那么数据就会变得混乱。要解决这个问题,可以为COLUMN数据选择一个唯一的分隔符,为COLUMN B列表选择另一个唯一的分隔符。例如:for (int i = 0; i < col_a_count; i++)
{
printf("%s; ", col_a_name[i]);
for (int ii = 0; ii < col_b_count; ii++)
{
printf("%d", col_b_value[ii]);
// If more B COL data then add secondary delimiter
if (ii < (col_b_count - 1)) printf(", ");
}
}
现在输出的文本文件应该是这样的:
name1; 22
name2; 23
name2; 33, 22, 34
当您稍后读取数据时,您希望首先使用";"分隔每行。分隔符,然后加上","分隔符,用于每个第二部分。