2016-02-12 117 views
0

可能是一个简单的一个专家:传递JSON数据到JavaScript变量

我有一个名为newport.json位于www文件夹一个JSON文件。将JSON如下:

{"nmech":"3.00","nelect":"3.00","nplant":"0.00","ncivil":"55.00"} 

我有我的JS通过Ajax加载在:

$.ajax({ 
    url:'newport.json', 
    datatype:'json', 
    type:'get', 
    cache:false, 
    success:function(data){ 
     $(data).each(function(index,value){ 
       console.log(value); 

     }); 
    } 
}); 

我的问题是控制台日志产生从上面的js以下几点:

Object {nmech: "3.00", nelect: "3.00", nplant: "0.00", ncivil: "55.00"} 

,但我似乎努力,然后得到一个值,说nmech传入一个JavaScript变量。

在此先感谢您的帮助。

+1

你的问题是什么? 'data'应该有你的'Object'' console.log(data.nmech);'应该产生'3.00' ... – brso05

+1

所以为了得到那个特定的值,它将是'data.nmech' *没有*每个循环。你有这些倍数还是仅仅是这个? – Derek

+1

是的,我可以使用data.nmech并输出到控制台,它显示3.00。我的问题是如何将这个值传递给一个变量。 –

回答

1

您的json是对象而不是数组。只要你没有任何东西可以列举,$。每个doen在这里都很有意义。

要访问你的属性,你需要:

var nmech = data.nmech; 
var nelect = data.nelect; 

+0

http://api.jquery.com/jquery.each/它将与'object' ...键/值对一起使用。 – brso05

+1

@ brso05你是完全正确的。主要的一点是,在这种情况下没有多大意义。我会更新答案。 – berliner

+0

它确实有意义,如果他循环通过他的价值观,如在他的问题... – brso05

0

由于没有返回的单个对象,循环只运行一次。我相信你所要做的就是枚举这个单一对象的属性。所以这个:

for (var propertyName in data) { console.log(data[propertyName]; }