首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Ruby/Rails将JSON序列化为JSON格式

用Ruby/Rails将JSON序列化为JSON格式
EN

Stack Overflow用户
提问于 2016-07-29 22:14:20
回答 1查看 1.3K关注 0票数 2

在我的Rails 5API项目中,我正在使用SOAP服务。通过使用Savon,version 2,我将从任何SOAP服务解析为JSON格式的响应。

在我的Rails项目中,我正在为多个SOAP服务创建一个外观。假设4个SOAP服务具有90%相似的响应格式/结构。我希望我的外观以JSON格式接受并发送来自服务的信息。

我找到了一些解决办法,但不是一个理想和有效的方法:

  1. 将JSON/SOAP响应从SOAP服务解析为模型/对象,然后通过现有的库(例如jsonapi-resources )将其输出到jsonapi中。
  2. 在Rails中从头开始构建序列化程序
  3. 使用ESB

第一种选择似乎是过度杀戮和容易出错。

第二个选项似乎是一个非常耗时的项目,如果我必须在短时间内自己完成这个项目,它也会容易出现很多错误。

第三种选择是由于预算原因而拒绝。

所以我的问题是,有没有工具可以帮助我?我已经做了大量的研究,但没有找到任何似乎是解决我的问题或满足我的需要的东西。

目前为止的解决办法

我发现最务实的做法是选择1。我正在做类似的事情:

代码语言:javascript
复制
# app/controllers/api/v1/some_resources_controller.rb
...
# Retrieve response from service
response = fetch_resources_from_service(query)
# Pick out the values from the response that we want to output
resource_params = strip_response(reponse, whitelist: [:id, :title, :date, ...]
# Create a model object from these stripped/whitelisted params
resource = Api::V1::SomeResource.new(resource_params)
# Render in JSON API format (with active_model_serializer)
render json: resource, adapter: :jsonapi, serializer: Api::V1::SomeResourceSerializer
EN

回答 1

Stack Overflow用户

发布于 2016-08-06 13:46:40

我不是Ruby人,但是简单地将xml转换为json的ruby库又如何呢?似乎您正在构建一个类似于反向代理的东西,内置了一个SOAP到json转换器。如果是这样的话,那么很难跟上后端API的变化和对象模型。使用类似https://github.com/jnunemaker/crack的东西可以使您免于为每个端点创建对象模型。

还发现了一个类似的所以问题Ruby XML to JSON Converter?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38668218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档