質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

1838閲覧

ActiveModel::Serializerを利用してjson形式の文字列が入ってる値を外側のvalueとして使いたい

ayako01

総合スコア27

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2018/04/26 07:19

編集2018/04/26 09:52

前提・実現したいこと

ActiveModel::Serializerを利用して、別テーブルのString型でjson形式の文字列が入ってる値をそのまま取り出して、外側のjsonのvalueとして使いたい。

[テーブルA].[カラムX]の値

{ "suzuki": { "age": 20, "place": "tokyo" }, "tanaka": { "age": 30, "place": "chiba" } }

呼び出し側

class TestSerializer < ActiveModel::Serializer attributes :hoge def hoge { aaa: object.[テーブルA].[カラムX], bbb: "hogehoge" } end end

実現したいjson

{ aaa: { "suzuki": { "age": 20, "place": "tokyo" }, "tanaka": { "age": 30, "place": "chiba" } }, bbb: "hogehoge" }

発生している問題・エラーメッセージ

値を取り出すと文字列なので、両端にダブルクォーテーションとエスケープ文字が出力されてしまいます。

"{\"suzuki\":{\"age\":20,\"place\":\"tokyo\"},\"tanaka\":{\"age\":30,\"place\":\"chiba\"}}"

補足情報(FW/ツールのバージョンなど)

ruby 2.3.3p222
Rails 4.2.8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/04/26 07:24

値を取り出している部分のソースコードをご提示ください。
m.ts10806

2018/04/26 07:25

あと、「どのように使いたいのか」という目的部分も具体的に記載していただければと思います。
ayako01

2018/04/26 07:42

上記2点を追記させて頂きました。
guest

回答1

0

自己解決

jsonをパースすれば良かっただけでした。。
JSON.parse(object.[テーブルA].[カラムX])

投稿2018/04/26 10:35

ayako01

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問