首页 > 解决方案 > 如何在 RAILS 上的 RUBY 中从数组生成 JSON 字符串

问题描述

我在使用Ruby on Rails从数组生成 json 对象时遇到问题(我就像这个领域的初学者),我有一个数组

问题= [{“question_cd”:“Question1002”,“value”:{“value”:“NO”}},{“question_cd”:“Question30”,“value”:{“value”:“NO”}} ,{“question_cd”:“Question138”,“value”:{“value”:“NO”}},{“question_cd”:“Question870”,“value”:{“value”:“NO”}},{ “question_cd”:“Question1524”,“值”:{“值”:“否”}},{“question_cd”:“Question1781”,“值”:{“值”:“否”}},{“question_cd ": "Question2084", "value": { "value": "YES" } } ]

生成 Json 字符串:

 questions. each do |dt|          
        questioncode =  dt&.dig('question_cd')           
        value =  dt&.dig('value')
        questioncode =  dt&.dig('question_cd')           
        value =  dt&.dig('value')
        questiondt = '"'+ questioncode+'": '+'"'+value+'"'
        @finalquestion = questiondt if @finalquestion.blank?
        @finalquestion = @finalquestion+', '+questiondt if !@finalquestion.blank?
     end     
     
     @questions_json = "{ #{@finalquestion} }"

使用上面的数组我需要生成一个 JSON 对象,比如

{
    "Question1002": "NO",
    "Question30":  "NO",
    "Question138": "NO",
    "Question870": "NO",
    "Question1524": "NO",
    "Question1781": "NO",
    "Question2084": "YES",    
}

这应该作为 Json 字符串(在 RUBY ON RAILS 中)返回,如

def json_questions
{
 "questionslist" : @questions_json
}
end

我能够获得一个 json 字符串,但它在返回父方法时添加了“”字符。这是我得到的输出

  { "questionslist": "{ \"Question1002\": \"'NO\",\"Question30\": \"'NO\",\"Question138\": \"'NO\",\"Question870\": \"'NO\",\"Question1524\": \"'NO\",\"Question1781\": \"'NO\",\"Question2084\": \"'NO\"}",
     "Description of Operations": "test description"
                }

请帮助我如何返回没有''的JSON字符串

提前致谢。

标签: ruby-on-rails-5

解决方案


推荐阅读