0

我正在使用 Ruby on Rails 中的 Savon 向 SOAP 接口发送请求。

我遇到的问题是结果作为包含数组的字符串返回:

阵列 ( [0] => ACCESS [1] => ALLEY [2] => ANCHORAGE [3] => 公寓 [4] => ARCADE [5] => AVENUE [6] => BANK [7] => BAY [8] => 海滩 [9] => 腰带 [10] => BEND [11] => BOARDWALK [12] => 林荫大道 [13] => 林荫大道)

我尝试使用 Savon 函数.to_hash解析结果,但这部分仍然是一个字符串。我也尝试过在字符串上使用Nori.parse,但这会返回一个空哈希。

有没有人在使用 SOAP 接口时遇到过类似的问题?将其解析为 Ruby 数组的最佳方法是什么?

我想在开始使用正则表达式编写 hacky 代码以将其转换为正确的格式,然后在其上调用eval()之前,我会提出这个问题。

非常感谢任何建议。

4

1 回答 1

1

如果您的结果看起来与示例完全相同,这就是我将采用以下方式之一的值的方式:

string = 'Array ( [0] => ACCESS [1] => ALLEY [2] => ANCHORAGE [3] => APARTMENTS [4] => ARCADE [5] => AVENUE [6] => BANK [7] => BAY [8] => BEACH [9] => BELT [10] => BEND [11] => BOARDWALK [12] => BOULEVARD [13] => BOULEVARDE)'
string.scan(/=> ([A-Z]+)/i).flatten
=> ["ACCESS", "ALLEY", "ANCHORAGE", "APARTMENTS", "ARCADE", "AVENUE", "BANK", "BAY", "BEACH", "BELT", "BEND", "BOARDWALK", "BOULEVARD", "BOULEVARDE"]

或者:

string.scan(/\b[A-Z]+\b/)

它返回相同的结果,只允许大写单词。如果你得到混合大小写,这将失败,并且由于前导“数组”而使其不区分大小写将失败。

于 2012-11-21T02:44:14.250 回答