我正在研究一种写字符串键值数据的方法,如下所示:
{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
答案 0 :(得分:0)
我建议您使用XML或JSON,而不是尝试编写自己的数据表示。两者都胜过工作。如果您使用的是XML,libxml
是您的朋友。有许多JSON库,包括(例如)libyajl
。 XML和JSON都经过了尝试和测试,可以应对逃逸等问题。 XML还允许使用xpath
和(如果需要)DTD功能进行查询。相信我,这比重新发明轮子要好。