将JSON转换为Javascript数组

时间:2015-05-08 13:33:26

标签: javascript arrays json

如何将以下JSON类型转换为javascript数组?

[
  {
    "Product Name":"CPE 10281",
    "Application":"Tyres",
    "Weight":150,
    "Cost to Produce":5000,
    "Grade":"A",
    "Cost to Sell":40000,
    "Strength":100
  },
  {
    "Product Name":"CPE 10282",
    "Application":"computers",
    "Weight":250,
    "Cost to Produce":4000,
    "Grade":"H",
    "Cost to Sell":25000,
    "Strength":90
  },
  {
    "Product Name":"CPE 10283",
    "Application":"paint",
    "Weight":150,
    "Cost to Produce":5000,
    "Grade":"A",
    "Cost to Sell":15000,
    "Strength":90
  }
]

与产品名称相关的任何给定条目的调用程序是什么?

感谢大家的意见和解决方案。我到现在所拥有的是



$.ajax({
    url: "dataProductJSON.json",
    dataType: 'json',
    mimeType: "application/json",
    success: function (data) {
        
        $.each(data, function (key, val){

            $.each(val, function (innerKey, innerValue){
                
                item.push('<li id="' + innerKey + '">' + innerKey +" : " + innerValue + '</li>');
            });
        });
        alert (item[2]);
        $('<ul/>', {
            'class': 'interest-list',
            html: item.join('')
        }).appendTo('body');
    },

});
&#13;
&#13;
&#13;

我的查询是在从JSON文件中读取数据之后如何将其转换为javascript数组。

4 个答案:

答案 0 :(得分:4)

现代浏览器支持JSON.parse(),因为它在ECMA-262 5th Edition中定义。

其用法如下:

var json = '{"response":true,"number":1}',
    obj = JSON.parse(obj);

alert(obj.count);

对于没有的浏览器,您可以使用json2.js实现它。

其他说明:

如果您已经在使用 jQuery ,则会有一个$.parseJSON函数映射到JSON.parse(如果可用)或者在旧浏览器中映射eval。但是,这会执行额外的,不必要的检查,这些检查也由JSON.parse执行。

总之,为了获得最佳性能,我建议您使用它:

var json = '{"response":true,"number":1}',
    obj = JSON && JSON.parse(json) || $.parseJSON(json);

这将确保您立即使用本机JSON.parse,而不是让jQuery在将字符串传递给本机解析函数之前对字符串执行完整性检查。

如何使用

在进行ajax调用时,您只需解析success上的数据,如下所示:

success: function (data) {
    data = JSON && JSON.parse(data) || $.parseJSON(data);
}

答案 1 :(得分:1)

上面的JSON是一个JavaScript数组。如果JSON是字符串形式,那么您需要使用JSON.parse(string);

进行转换

答案 2 :(得分:1)

在javascript中,这已经是一个对象,如果它是一个字符串,你可以使用

将它作为一个对象

var obj = JSON.parse(string)

然后你可以像这样使用它:

obj[0]["Product Name"]&lt; - 将获得&#34;产品名称&#34;的价值第一张唱片。

答案 3 :(得分:0)

如果数组是一个字符串,您可以使用:

var obj = JSON.parse(string);

示例:

var text = '[
  {
    "Product Name":"CPE 10281",
    "Application":"Tyres",
    "Weight":150,
    "Cost to Produce":5000,
    "Grade":"A",
    "Cost to Sell":40000,
    "Strength":100
  },
  {
    "Product Name":"CPE 10282",
    "Application":"computers",
    "Weight":250,
    "Cost to Produce":4000,
    "Grade":"H",
    "Cost to Sell":25000,
    "Strength":90
  },
  {
    "Product Name":"CPE 10283",
    "Application":"paint",
    "Weight":150,
    "Cost to Produce":5000,
    "Grade":"A",
    "Cost to Sell":15000,
    "Strength":90
  }
]'
var array= JSON.parse(text);