我想知道在.net中检索和处理hstore数据的最佳方法是什么。
如果我执行基本查询,那么它将输出以这种方式格式化的字符串:
"key1" => "value1", "key2" => "value2"
看起来像我今天解析的KeyValuePair一样:
SimpleJson.SimpleJson
.DeserializeObject<Dictionary<string, string>> ("{" + tags.Replace ("=>", ":") + "}");
我可以手动执行以下操作:
但是,如果在值内部有一个“,”或者在值内部有一个完整的元素,我应该进行递归解析吗?并且有关于解析字符串的所有问题:)
你认为比Json的技巧更好吗?
答案 0 :(得分:0)
您有几个选择。我不能说是否有比现在更好的东西。我的建议实际上是在测试版开始测试9.3并考虑将代码移到那里。 9.3的hstore有一个转换为json,所以你可以在db中执行它。这可能是计划成为早期采用者的一个很好的理由。实质上在9.3中,您将能够:
SELECT my_hstore::json FROM mytable;
第二种可能性是你可以在PostgreSQL的内存中创建一个结构(对于9.1和9.2中现有的受支持版本),将你自己的转换编写到json。有关如何操作的见解,请参阅下面的安德鲁博客。
第三种可能性是使用XML的现有功能并编写XML转换。这是fairly easy。通过简单的功能,您可以轻松地执行以下操作:
SELECT my_hstore :: xml FROM mytable;
最后的可能性是在.net中进行字符串解析。这是我最不了解的领域,但我也建议它是最后的选择,因为与其他人一样,你可以直接访问hstore数据接口,也因为你将使用的所有函数都有相对紧张的合同和许多其他用户。