You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中如何将字符串转换为数组?

解决JSON字符串转数组的问题

嘿,这个问题其实很常见,你的字符串本质是JSON格式的数组字符串,用标准的JSON解析方法就能轻松搞定,下面给你分两种常用语言的解决方案:

JavaScript 解法

直接使用浏览器/Node.js内置的JSON.parse()方法,这是最稳妥且通用的方式:

// 你的原始字符串(注意这里用单引号包裹,避免和内部双引号冲突)
const langStr = '["fr", "sv"]';
// 解析成数组
const langArr = JSON.parse(langStr);

console.log(langArr); // 输出:["fr", "sv"]
console.log(typeof langArr); // 输出:object(数组在JS里属于对象类型)

如果之前尝试失败,大概率是字符串的引号格式有问题——比如你如果用双引号包裹整个字符串,记得要转义内部的双引号,比如"{\"fr\", \"sv\"}",不过更推荐用单引号包裹整个字符串,避免转义麻烦。

Python 解法

使用Python标准库的json模块,调用loads()方法解析:

import json

# 原始字符串
lang_str = '["fr", "sv"]'
# 解析为Python列表(对应JS的数组)
lang_arr = json.loads(lang_str)

print(lang_arr) # 输出:['fr', 'sv']
print(type(lang_arr)) # 输出:<class 'list'>

同样要注意字符串的引号匹配,Python里用单引号包裹整个JSON字符串,内部的双引号就不需要转义了,非常方便。

不推荐的手动解析方式(仅作参考)

如果你不想用JSON解析,也可以手动截取、分割字符串,但这种方法很容易因为字符串格式变化出问题(比如元素里包含逗号或引号时就会失效),示例如下(以JS为例):

const langStr = '["fr", "sv"]';
// 去掉首尾的[],按逗号分割,再去掉每个元素的引号
const langArr = langStr.slice(1, -1).split(', ').map(item => item.replace(/"/g, ''));
console.log(langArr); // 输出:["fr", "sv"]

还是强烈建议用JSON解析的标准方法,稳定性和兼容性都更好。

内容的提问来源于stack exchange,提问作者Ravi Kumar SIngh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:36:31