我有以下json:
[{"test": "test_a", "doc_type": { "id": 32 }}]
所以我試圖決議它,但我收到錯誤
型別錯誤:沒有將 Array 隱式轉換為 String。
抱歉,我正在學習 Ruby :D 這是代碼。
obj = JSON.parse(j)
uj5u.com熱心網友回復:
JSON.parse() 需要一個字串輸入。所以,這里不能使用陣列。相反,您可以嘗試如下,
JSON.parse('[{"test": "test_a", "doc_type": { "id": 32 }}]')
或者
JSON.parse(arrayResponse.to_json)
to_json 回傳 JSON 字串表示。檔案:https : //apidock.com/rails/Hash/to_json
uj5u.com熱心網友回復:
您帖子中的資料結構不是可以決議的 JSON 字串,而是包含散列的 Ruby 陣列。
如果它是一個 JSON 字串,那么決議將起作用:
JSON.parse('[{"test": "test_a", "doc_type": { "id": 32 }}]')
#=> [{"test"=>"test_a", "doc_type"=>{"id"=>32}}]
但是,如果您嘗試 JSON 決議 Ruby 陣列,則會得到您所描述的錯誤:
JSON.parse([{"test": "test_a", "doc_type": { "id": 32 }}])
#=> no implicit conversion of Array into String (TypeError)
這可能意味著您用于加載 JSON 的庫會自動將其決議為 Ruby 哈希。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/344642.html
