我想將紅寶石散列轉換爲yaml。我希望散列的一部分是有效的json;然而,當我嘗試序列化json字符串時,它被轉換爲引號中的yaml。紅寶石to_yaml字符串我的json
例如,當我只是有一個簡單的字符串時,輸出中如下(注foo
不帶引號):
request = {}
request['body'] = 'foo'
request.to_yaml # outputs: body: foo
然而,當我添加一些東西到字符串的開頭,如{ foo
身體的輸出得到報價:
request['body'] = '{ foo'
request.to_yaml # outputs: body: '{ foo'
我該如何解決這個問題?我試過JSON.parse
,雖然這樣做工作,我不能保證這個輸入實際上是json(可以是xml等等) - 我只是想回饋給我的任何東西,但不是「字符串化」。
基本上,我想給的對象,看起來像:
{ 'request' => {
'url' => '/posts',
'method' => 'GET',
'headers' => [
'Content-Type' => 'application/json'
]
},
'response' => {
'code' => 200,
'body' => '[{"id":"ef4b3a","title":"this is the title"},{"id":"a98c4f","title":"title of the second post"}]'
}
}
將返回:
request:
url: /posts
method: GET
headers:
- Content-Type: application/json
response:
code: 200
body:
[{"id":"ef4b3a","title":"this is the title"},{"id":"a98c4f","title":"title of the second post"}]
其原因是:現在,我可以從YAML到正確的紅寶石哈希但我不能走另一條路。
@engineersmnky - 重新:原因是因爲我有一個空間:我可以鍵入'這是標題'有三個空格,它不會被引用。這是當我添加一個花括號,它被引用。另外,請參閱編輯 – Tom
如果你想解析'String'體,你將不得不知道內容類型'YAML'不會假定這個字符串可能是別的東西讓我檢查每個字符串解析庫是我假設的它只是一個'String' – engineersmnky