首页 > 解决方案 > 如何将以字符串形式表示的数组转换为实际数组

问题描述

我有一个字符串形式的数组

"[{"img_type":"HA","img_size":0,"img_name":"8a040ff1-e780-4843-9f01-6dc37e11f3c8"},{"img_type":"HB","img_size":0,"img_name":"8a040ff1-e780-4843-9f01-6dc37e11f3c8"}]"

我需要将其转换为

[
  {"img_type": "HA", "img_size": 0, "img_name": "8a040ff1-e780-4843-9f01-6dc37e11f3c8"}, 
  {"img_type": "HB", "img_size": 0, "img_name": "8a040ff1-e780-4843-9f01-6dc37e11f3c8"}
]

我尝试删除双引号,但没有用。如何将其转换为数组?

标签: ruby

解决方案


str = '[{"img_type":"HA","img_size":0,"img_name":"8a040ff1-e780-4843-9f01-6dc37e11f3c8"},{"img_type":"HB","img_size":0,"img_name":"8a040ff1-e780-4843-9f01-6dc37e11f3c8"}]'

require 'json'
JSON.parse(str, symbolize_names: true)
  #=> [{:img_type=>"HA", :img_size=>0, :img_name=>"8a040ff1-e780-4843-9f01-6dc37e11f3c8"},
  #    {:img_type=>"HB", :img_size=>0, :img_name=>"8a040ff1-e780-4843-9f01-6dc37e11f3c8"}]

请注意JSON::parse提供了几个可选参数,其中之一 ( symbolize_names) “返回 JSON 对象中名称(键)的符号。否则返回字符串。”


推荐阅读