如何将数组字符串转换为数组

How to convert Array String to array?

本文关键字:数组 转换 字符串      更新时间:2023-09-26

有没有最好的方法将字符串转换为数组。

我正在使用Spring mvc并从javascript调用ajax并让String上线

var result = "[[a,b,c],[d,e,f]]"

我想在数组中转换这个字符串,例如

var resultArray = [[a,b,c],[d,e,f]] 

当我找到长度时,我想得到 2

早些时候我返回了一个列表列表,例如

List<List<String>> list = new ArrayList<List<String>>();

所以它在 JSON 解析期间在 jQuery 函数中出现错误,因为我得到的是"[[a,b,c],[d,e,f]]"而不是双引号 ("a")。然后我更改了后端代码,它像[["a","b","c"],["d","e","f"]]一样返回 JsonArray 的 JsonArray,现在我能够解析 JSON。

JSONArray outerJsonArray = new JSONArray();
JSONArray innerJsonArray = new JSONArray();
innerJsonArray.put("a");
innerJsonArray.put("b");
innerJsonArray.put("c");
outerJsonArray.put(innerJsonArray);
innerJsonArray.put("d");
innerJsonArray.put("e");
innerJsonArray.put("f");
outerJsonArray.put(innerJsonArray);

和返回outerJsonArray.toString()

你需要使用 JSON.parse

var resultArray = JSON.parse('[["a","b","c"],["d","e","f"]]');

您可以使用resultArray.length获取大小

检查此 http://www.w3schools.com/jsref/jsref_length_array.asp

当然这个字符串"[[a,b,c],[d,e,f]]"不能工作,因为不是正确的JSON字符串,每个单词必须在双引号之间

如果你的结果每次都有一个"],唯一的方法。['" ...

然后,也只有那时 -> 这个 JSFiddle 才会为你工作。

法典:

.HTML:

<div class="a"></div>
<div class="b"></div>

JS(与 JQUery V. 1.11:

var result = "[[a,b,c],[d,e,f]]"
var splitter = result.split('],[');
var arr = [];
$.each(splitter, function(i, e){
    var arrElement = e;
  while(arrElement.indexOf(']') > -1){
    arrElement = arrElement.replace(']', '');
  }
  while(arrElement.indexOf('[') > -1){
    arrElement = arrElement.replace('[', '');
  }
  arr.push(arrElement);
});
$('.a').text(arr[0]);
$('.b').text(arr[1]);

您可以使用 JSON.parse("[[a,b,c],[d,e,f]]") 或 eval,但我推荐 JSON.parse