如何拆分成有效数组

时间:2017-11-19 14:12:06

标签: javascript c# jquery arrays

我跟随从API返回的对象,我想将它们转换为javascript或c#中的数组。

[
  "1":"h1:first",
  "2":".content a > img",
  "3":"#content div p"
]

我已经尝试将其转换为json对象,拆分功能等,但却为我工作。

在javascript中使用split函数时抛出异常Uncaught SyntaxError: Unexpected token :

2 个答案:

答案 0 :(得分:2)

您可以通过用大括号替换方括号将其转换为有效的JSON。

var data = '["1":"h1:first","2":".content a > img","3":"#content div p"]';
var json = `{ ${data.trim().slice(1, -1)} }`;

然后JSON.parse就像你之前尝试过的那样。如果你想要一个数组,并且不关心实际的索引号,你可以使用Object.values来获取值数组。



var data = '["1":"h1:first","2":".content a > img","3":"#content div p"]';
var json = `{ ${data.trim().slice(1, -1)} }`;

console.log(json);

var parsed = JSON.parse(json);

console.log(parsed);

var array = Object.values(parsed);

console.log(array);




答案 1 :(得分:0)

我选择c#代码来解决问题,而不是客户端(正如下面的@rock明星所建议的那样)。

string[] domSelectors = selectors.Replace("\"", "").Split(new string[] { "[", ",", "]" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var domSelector in domSelectors)
{
   string[] arrayElements = domSelector.Split(':');
   string selector = string.Join(":", arrayElements.Skip(1));
}

希望它可以帮助那些无法控制API的人,并希望像我在我的项目中那样解决问题!