【问题标题】:storing data contains special characters in orientdb在 orientdb 中存储数据包含特殊字符
【发布时间】:2014-10-15 21:32:14
【问题描述】:

我们正在使用 Orient DB 来存储我们的数据。我们使用 Ruby 哈希来存储它。但是,如果任何特殊字符出现在哈希值中,它会破坏哈希结构并在存储时导致错误。 我们需要一些帮助来了解如何转义哈希值,以便将特殊字符转换为常量。

我们将以下哈希传递给 orient db,它会导致错误,因为 addressLine1 包含破坏 JSON 格式的特殊字符。

{
  "addressLine1" =>"my address`~!@\#$%^&*()_ +=-{}|[]:\"';<>?/.,",
  "addressLine2"=>"india",
  "city"=>"bangalore",
} 

我们可以做的一件事是转义散列中的所有字符串,然后将其传递给 orient db,在读取时我们将再次对其进行转义。请给出最优解。

【问题讨论】:

  • 您可以发布您执行的导致错误的命令吗?
  • 您尝试过OrientDB v1.7.8 还是使用旧版本?
  • 是的,我们也尝试了 1.7.8。我们使用的是 1.6 版本。

标签: ruby ruby-on-rails-3 hash graph-databases orientdb


【解决方案1】:

试试这个可行:

insert into V content {
  "addressLine1" : "my address`~!@\#$%^&*()_ +=-{}|[]:\"';<>?/.,",
  "addressLine2":"india",
  "city" : "bangalore"
} 

【讨论】:

  • 它在东方数据库控制台工作。但是我们使用的是 Ofunctions。我的问题不在于东方,而在于用 Ofunction 编写的 javascript 代码。我们使用 NET http 通过 REST API 将数据传递给 orient。插入数据在我们执行 JSON 字符串化操作的 Ofunction 中中断。以下解决方案适用于我们
【解决方案2】:

谢谢Lvca。将orientdb升级到1.7.8版本后,我们就可以解决问题了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2021-06-29
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多