Algo - 要解析的键值表达式(C)

时间:2014-02-08 17:29:04

标签: c regex json parsing

我正在研究一种写字符串键值数据的方法,如下所示:

{k1=v1__k2=v2__k3=v3}

解析并不是什么大问题,但是当我想添加将一组键值写为键值的可能性时问题变得更大,如下所示:

{k1=v1__k2={k21=v21__k22=v22}__k3=v3}

此外,最好能够在我的结构中添加更多深度,例如:

{k1=v1__k2=v2__k3={k31={k311=v311__k312=v312__k313={k3131=v3131}}__k32=v32}

我尝试(在C中)解析它,但是以一种简单的方式解析它(分割__和{}字符)变得更加困难,我也尝试使用正则表达式来分割每个键和值但是我失去了层次结构(深度) )数据......

问题的制约因素:

  • 数据结构可以接受多个深度
  • 可以更改特殊字符(或字符集)(与__或{}不同)

任何人都知道一个好的算法? 我不确定,但JSon格式有相同的约束,我错了吗? 非常感谢@ll

1 个答案:

答案 0 :(得分:0)

我建议您使用XML或JSON,而不是尝试编写自己的数据表示。两者都胜过工作。如果您使用的是XML,libxml是您的朋友。有许多JSON库,包括(例如)libyajl。 XML和JSON都经过了尝试和测试,可以应对逃逸等问题。 XML还允许使用xpath和(如果需要)DTD功能进行查询。相信我,这比重新发明轮子要好。