获取json数组的值,其中键具有&在其中

时间:2017-01-03 15:06:46

标签: javascript jquery arrays json

我有一个JSON字符串,如下所示。

{
    "Building": [ "Roofing", "Builders", ],
    "Rims & Tires": [ "Tire Fitter", ]
}

你如何从" Rims&轮胎"作为&好像通过我的javascript。

这是我必须使用的代码,javascript需要在一个字符串中,因为它来自一个php文件。

var result = "{"Building": ["Roofing", "Builders", ],"Rims & Tires": ["Tire Fitter", ]}";

$.each(result["Rims & Tires"], function(key1, value1) {
  console.log("" + value1);
});

提前感谢您的任何答案。

1 个答案:

答案 0 :(得分:1)

在您的代码中result是一个字符串,而不是一个对象。要将JSON字符串转换为对象,可以使用JSON#parse。但是,您的JSON字符串无效,需要一些清理。删除每个数组中最后一个括号之前的额外逗号。

此外,请将换行标记"更改为',否则您将收到Invalid or unexpected token错误。

在:

var result = "{"Building": ["Roofing", "Builders", ],"Rims & Tires": ["Tire Fitter", ]}";

后:

var result = '{"Building": ["Roofing", "Builders"],"Rims & Tires": ["Tire Fitter"]}';

现在字符串是一个有效的字符串和一个有效的JSON,您可以将其解析为一个对象,然后使用括号表示法访问内部数组:



var result = '{"Building": ["Roofing", "Builders"],"Rims & Tires": ["Tire Fitter"]}';

// parse the string
var resultObject = JSON.parse(result);

// iterate using forEach or if you must use jquery $.each
resultObject['Rims & Tires'].forEach(function(value, index) {
  console.log(index, value);
});