1

我想知道在 .net 中检索和处理 hstore 数据的最佳方法是什么。

如果我做一个基本的查询,那么它会输出一个这样格式化的字符串:

"key1" => "value1", "key2" => "value2"

看起来像我今天这样解析的 KeyValuePair :

SimpleJson.SimpleJson
.DeserializeObject<Dictionary<string, string>> ("{" + tags.Replace ("=>", ":") + "}");

我可以通过以下方式手动完成:

  • 先用“,”分割
  • 然后循环并用“=>”分割
  • 然后提取左键和右值

但是,如果一个值中有一个“,”或者一个值中有一个完整的元素,我应该进行递归解析吗?还有关于解析字符串的所有问题:)

您是否看到比 Json 的把戏更好的方法?

4

1 回答 1

0

你有几个选择。我不能说是否有比你现在拥有的更好。我的建议实际上是在 9.3 处于 beta 版本后立即开始 beta 测试,并考虑将您的代码移到那里。9.3 的 hstore 可以转换为 json,因此您可以在 db 中执行此操作。这可能是计划成为早期采用者的一个很好的理由。本质上,在 9.3 中,您将能够:

SELECT my_hstore::json FROM mytable;

第二种可能性是您可以在 PostgreSQL 的内存中创建一个结构(对于 9.1 和 9.2 中现有的支持版本),以将您自己的转换写入 json。有关如何做到这一点的见解,请参阅下面的 Andrew 的博客。

第三种可能性是使用 XML 的现有函数并编写 XML 转换。这相当容易。使用一个简单的功能,您可以轻松地执行以下操作:

从 mytable 中选择 my_hstore::xml;

最后一种可能性是在 .net 中进行字符串解析。这是我知之甚少的领域,但我也建议它是最后的选择,很大程度上是因为与其他人一样,您可以直接访问 hstore 数据接口,也因为您将使用的功能都有相对紧张的合同和很多其他用户。

于 2013-05-05T05:59:46.220 回答