如何提取从阵列串

问题描述:

我有以下字符串内部串,包含数组,包含字符串:如何提取从阵列串

'["sgrdalal21"]' 

如何可以提取内部串?

+0

简单阅读它的第一个索引var str = [“sgrdalal21”] [0]' – Satpal

+0

Thanx @Satpal,但它给我只有这个字符'['' –

+2

然后'[“sgrdalal21”]'是一个字符串不是阵列。测试一次'JSON.parse('[“sgrdalal21”]')[0]' – Satpal

作为'["sgrdalal21"]'作为字符串,JSON.parse()可用于构造JavaScript值或对象。

var obj = JSON.parse('["sgrdalal21"]'); 
var str = obj[0]; //Use index to access the element 

你有什么是JSON字符串:

var json = '["sgrdalal21"]'; 

你必须分析它作为JSON有一个普通的数组。 然后你可以在阵列中访问字符串:

var array, string; 
try { 
    array = JSON.parse(json); 
    string = array[0]; 
} catch (e) { 
    // handle error 
} 

请记住,只要你解析你不能确定是有效的(通常情况下)JSON字符串,那么你将永远有包裹JSON.parse()通话在try/catch区块内,否则您的应用将在无效的JSON上崩溃。我注意到,人们很少在示例中处理JSON.parse()错误,然后人们惊讶于他们的服务器崩溃并且不知道为什么。这是因为JSON.parse()抛出坏输入异常,并已与try/catch被用来避免崩溃整个应用程序:

var array; 
try { 
    array = JSON.parse(json); 
} catch (e) { 
    // handle error 
} 

您还可以使用tryjson为:

var array = tryjson.parse(json); 

会为你做的自动。现在你可以使用:

var string = array && array[0]; 

这里的string变量是undefined如果JSON是无效或数组不包含任何元素,或将等于内部串,就像在第一个例子中使用以上为try/catch