我跟随从API返回的对象,我想将它们转换为javascript或c#中的数组。
[
"1":"h1:first",
"2":".content a > img",
"3":"#content div p"
]
我已经尝试将其转换为json对象,拆分功能等,但却为我工作。
在javascript中使用split函数时抛出异常Uncaught SyntaxError: Unexpected token :
。
答案 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的人,并希望像我在我的项目中那样解决问题!