2016-11-25 74 views
-2

我有问题可以访问JavaScript中的数组,我从JSON字符串转换而来。将JSON字符串转换为关联的JavaScript数组

这是代码:

var data = "{"2":"value1", "3":"value2", "4":"value4"}"; 
var result = JSON.parse(data); 

我的问题是:我怎么能存取权限值是多少?假设我想获得“value1”,我可以如何访问它?

Regards

+0

不是有效的字符串,逃不过你的双引号' “{\” 2 \ “:\” VALUE1 \ “...}”;' – GillesC

+0

你' data'字符串不是有效的字符串,并且字符串的内容不是数组 –

回答

0

您需要修复外部引号。另外,获得一个“关联数组”的关联数组的最佳方式是使用一个对象,而JSON.parse无论如何都会返回给您。

var data = '{"2":"value1", "3":"value2", "4":"value4"}'; // outer quotes converted to single quotes 
 
var result = JSON.parse(data); 
 
console.log(result["2"]); // "value1"

0
var data = "{\"2\":\"value1\", \"3\":\"value2\", \"4\":\"value4\"}"; 
var result = JSON.parse(data); 

console.log(result["2"]) 
0
var data = "{\"2\":\"value1\", \"3\":\"value2\", \"4\":\"value4\"}"; 
var result = JSON.parse(data); 
console.table(result); 
// Object 
//  2: "value1" 
//  3: "value2" 
//  4: "value4" 

您现在可以访问它们就像你通常会在一个对象:

console.log(result["2"]); // "value1" 
console.log(result["3"]); // "value2" 
console.log(result["4"]); // "value4" 
0

虽然转义引号是你的问题的解决方案,它如果您为JavaScript字符串文字使用单引号,则更容易:

var data = '{"2":"value1", "3":"value2", "4":"value4"}'; 
 
var result = JSON.parse(data); 
 
console.log(result);

0

继承人纯的Javascript的解决方案:

var data = '{"2":"value1", "3":"value2", "4":"value4"}'; 
 
var result = JSON.parse(data); 
 

 
console.log(result["2"]);

现在,这里是一个使用jQuery的一个解决方案。希望它可以帮助

var data = '{"2":"value1", "3":"value2", "4":"value4"}'; 
 
var obj = $.parseJSON(data); 
 
console.log(obj["2"]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>