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
相关产品推荐
相关产品推荐

