实际上,我正在从Android设备中以字符串形式获取arraylist
,但是我想将其转换为array
。 我查阅了很多类似的问题,但没有一个有用的。 我也尝试使用JSON.parse()
,但没有帮助。
我以'[艺术,摄影,写作]'的形式获得societyList。那么如何将这种格式转换为数组?
代码:
var soc_arr=JSON.parse(data.societyList)
console.log(soc_arr.length)
实际上,我正在从Android设备中以字符串形式获取arraylist
,但是我想将其转换为array
。 我查阅了很多类似的问题,但没有一个有用的。 我也尝试使用JSON.parse()
,但没有帮助。
我以'[艺术,摄影,写作]'的形式获得societyList。那么如何将这种格式转换为数组?
代码:
var soc_arr=JSON.parse(data.societyList)
console.log(soc_arr.length)
使用类似这样的东西
var array = arrayList.replace(/^\[|\]$/g, "").split(", ");
在 @drinchev 的建议下,使用了正则表达式。
正则表达式匹配以 '[' 开始、以 ']' 结束的字符。
list.replace(/^\[|\]$/, "").split( ", " );
:) - drinchevlist.replace(/^\[|\]$/g, "").split( ", " )
。 - drinchev["Hello, World", "Hi"]
中出现错误。 - Fredrik Evar array = arrayList.replace(/^\["|"\]$/g, "").split('", "');
应该可以解决这个问题(对于有效的JSON),但正如有人指出的那样,示例字符串并不是有效的JSON。 - Fredrik E这个字符串不是有效的JSON,因为它没有使用""
表示一个字符串。
最好的方法是使用类似下面的方法自己解析:
let data = '[test1, test2, test3]';
let parts = data
.trim() // trim the initial data!
.substr(1,data.length-2) // remove the brackets from string
.split(',') // plit the string using the seperator ','
.map(e=>e.trim()) // trim the results to remove spaces at start and end
console.log(parts);
RegExp.match() 可能会有用。
console.log('[Art, Photography, Writing]'.match(/\w+/g))
match()
适用于任何字符串,并将其拆分为数组元素。
replace
和 split
。此外,使用 trim()
从数组元素中删除尾随和前导空格。
var str = '[Art, Photography, Writing]';
var JSONData = str.replace('[','').replace(']','').split(',').map(x => x.trim());
console.log(JSONData);
societyList
如下:'["艺术", "摄影", "写作"]'
,然后JSON.parse()
应该可以正常工作。 - Satpal