我有幾個Ruby模型需要通過HTTParty/Put發送到Java/RestEasy服務器。HTTParty double escapes my json
configuration_mapping.rb:
def as_json(options = {})
{:configGroup => @group, :coordinates => {@key => @value}}
end
def self.put(endpoint, content, tier = 'nursery')
response = HTTParty.put(base_uri + endpoint, json_payload(content))
end
def self.json_payload(content)
{
:body => content.to_json,
:format => :json,
:headers => {"Content-Type" => "application/json", "content-type" => "application/json", "Accept" => "application/json"}
}
end
的JSON得到雙轉義:
{:體=>」 { \ 「configGroup \」:\ 「測試\」, \「座標\」:{ \「Integration Test Key \」:\「moo \」 }}「,:format =>:json,:headers => {」Content-Type「=>」application/json「 ,「內容類型」
=> 「應用/ JSON」, 「接受」=> 「應用/ JSON」}}
和Jackson JSON解析器borks:
2011-11-26 15:34:11179 ERROR [tp-1442358158-0] [REPORT] [] [asy.core.SynchronousDispatcher]執行失敗PUT /v1/groups/test/mappings; tester = Integration Test; tier = qa; timeStamp = -4712-01- 01 org.jboss.resteasy.spi.ReaderException: org.codehaus.jackson.map.JsonMappingException:無法反序列化 java.lang.String實例超出START_OBJECT tok en [來源: [email protected];線:1,列:22]在
我試圖讓httparty轉換成JSON對我來說,想httparty躲過了字,寫我自己的as_json方法,但是這是不是我想要的JSON輸出,錯誤的字段在這裏和我的as_json方法不叫:
{:體=>配置::客戶:: ConfigurationMapping:0x00000100c78930 @dimensions = { 「測試」=> 「綜合測試」,「 「=>」qa「, 」timeStamp「=>」 - 4712-01-01「},@key =」集成測試密鑰「, @ group =」test「,@ value =」moo「>,:: format =>:json, :headers => {「Content-鍵入 「=>」 應用/ JSON」, 「內涵式」=> 「應用/ JSON」, 「接受」=> 「應用/ JSON」}}
是什麼原因造成的字符串變成雙逃脫?