我不理解喜欢 Savon 而不喜欢 Soap4r 的人。
如何在 Savon 响应中获取返回对象的属性?使用soap4r 就像调用getter 一样干净!
显然,在 Savon 中,我需要显式解析响应并遍历 response_hash。这比soap4r 方法差得多。我是不是搞错了什么,还是 Savon 只是一个质量较差的soap4r?
编辑:这个问题是由于 savon 没有正确支持 multi_ref 响应,如答案评论中所述。
我不理解喜欢 Savon 而不喜欢 Soap4r 的人。
如何在 Savon 响应中获取返回对象的属性?使用soap4r 就像调用getter 一样干净!
显然,在 Savon 中,我需要显式解析响应并遍历 response_hash。这比soap4r 方法差得多。我是不是搞错了什么,还是 Savon 只是一个质量较差的soap4r?
编辑:这个问题是由于 savon 没有正确支持 multi_ref 响应,如答案评论中所述。
来自https://github.com/raldred/savon/blob/master/lib/savon/response.rb
# You can also let Savon translate the SOAP response body to a Hash.
#
# response.to_hash
# => { :findUserByIdResponse => {
# => :id => "123",
# => :username => "eve"
# => :active => true
# => }
所以你应该能够调用 hash[:object] 来返回属性。
您不需要遍历响应对象,只需调用 to_hash。