【发布时间】:2021-11-15 18:56:31
【问题描述】:
我有一个数组来存储这样的一些数据,这是我正在使用的确切输入
{
"accepted" => {
"number_of_order" => {
"condition" => "between_number", "value" => "0&5"
}
}, "removed" => {
}
}
现在我正在尝试将此数组转换为像这样的 ruby 哈希访问,这是我的预期输出,这不是我现在得到的
--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess
accepted: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
number_of_order: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
condition: between_number
value: 0&5
removed: !ruby/hash:ActiveSupport::HashWithIndifferentAccess {}
但我无法在 ruby 哈希访问中转换数组。我也尝试将 YAML 转储 Yaml::dump($array); 转换为 YAML,然后进行 ruby 哈希访问,但没有任何效果。
基本上,我正在尝试解决这个问题
How to get data from ruby hash access to laravel 8?
您可以参考上面的链接,我将这个 ruby 哈希转换为 laravel 数组,但现在我也想将此数组转换为 ruby 哈希。
我当前用于将数组转换为 ruby 哈希的代码
$jsonEncoded = '{"accepted":{"number_of_order":{"consition":"between_number","value":"0&5"}}}';
$array = json_decode($jsonEncoded, true);
dump(Yaml::dump($array));
我当前用于将 ruby 哈希转换为数组的代码
$filter_data = str_replace("!ruby/hash:ActiveSupport::HashWithIndifferentAccess", "", $filter_data);
$yamlContents = Yaml::parse($filter_data);
【问题讨论】:
-
你的问题我不清楚。您写道,您有一个想要转换为 Ruby 的 Lavaral 数组,但随后您发布了一个已经是有效 Ruby 的嵌套散列。然后你写了关于加密的文章,但你的例子中没有加密值。您能否详细说明确切的输入数据和预期输出并分享您已有的代码?
-
您好,@spickermann 很抱歉您不清楚共享数组是确切的输入,之后,我分享了 ruby 代码,这实际上是我想要的预期输出。我正在编辑我的问题以分享我的代码。你可以参考我分享的那个链接,这样你就可以正确理解了。很抱歉使用加密关键字。
-
@HitenGal 你能告诉我你想要activerecord格式yaml输出的原因吗,我不明白我在想你无法加载yaml并想将它从ruby转换为php的问题反之亦然
-
@Chandan 我必须像这样存储数据。因为有一个 Shopify 应用程序在 ruby 中使用 ActiveSupport 方法提供强大的数据,所以我必须使用 laravel 管理这些数据。