本文介绍了Rails 3:JSON字符串的一部分中出现转义符(\)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人知道为什么我的一些json元素被反斜杠(\)转义,而另一些则没有吗?

Anyone know why some of my json elements are being backslash(\) escaped while others are not?

{"first":"John","last":"Smith","dogs":"[{\"name\":\"Rex\",\"breed\":\"Lab\"},{\"name\":\"Spot\",\"breed\":\"Dalmation\"},{\"name\":\"Fido\",\"breed\":\"Terrier\"}]"}

理想情况下,我希望他们中的任何一个都无法逃脱...

Ideally I'd like NONE of them to be escaped...

这是通过在两个模型中覆盖as_json生成的.人有很多狗.

This was generated by overriding as_json in two models. Person has_many Dogs.

#models/person.rb
class Person < ActiveRecord::Base
  has_many :dogs

  def as_json(options={}) 
     {
       :first => first,
       :last => last,
       :dogs => dogs.to_json
     }
   end
end

#models/dog.rb
class Dog < ActiveRecord::Base
  belongs_to :people

  def as_json(options={})
    {
      :name => name, 
      :breed => breed
    }
  end
end

推荐答案

尝试删除dogs.to_json上的to_json.

这篇关于Rails 3:JSON字符串的一部分中出现转义符(\)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 14:43