如何从JSON文件中读取特定数据并在Javascript中再次使用该数据。
示例:我有一个.JSON文件,其中包含数千条太阳系外行星记录。在JSON中有一个列(好吧,至少在我将它转换为JSON时在CVS中),它包含所有这些在parsec中以距离计算的行星的信息。
我希望能够计算出所有这些行星的平均值,并通过简单的javascript提醒这个数字。
这就是JSON中列出这些行星的方式:
"Distance [pc]": 110.62,
"Effective Temperature [K]": 4742,
"Date of Last Update": "5/14/2014"
我是JSON的新手,所以对于JSON专家来说,这可能是一个很容易回答的答案。希望你能帮忙,谢谢!
PS:我添加了JSON文件,认为它可以帮助您理解和回答问题。这是我上传的临时URL。
编辑:
这里有更多的JSON代码
[
{
"rowid": 1,
"Host name": "11 Com",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 19.4,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 110.62,
"Effective Temperature [K]": 4742,
"Date of Last Update": "5/14/2014"
},
{
"rowid": 2,
"Host name": "11 UMi",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 10.5,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 119.47,
"Effective Temperature [K]": 4340,
"Date of Last Update": "5/14/2014"
},
{
"rowid": 3,
"Host name": "14 And",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 4.8,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 76.39,
"Effective Temperature [K]": 4813,
"Date of Last Update": "5/14/2014"
},
{
"rowid": 4,
"Host name": "14 Her",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 4.64,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 18.15,
"Effective Temperature [K]": 5311,
"Date of Last Update": "5/14/2014"
}]
enter code here
答案 0 :(得分:1)
如果你的JSON是字符串格式,你可以做这样的事情
$seed = str_split('ABCDEFGHIJKLMNOPQRSTUVWXYZ');
$seed2= str_split('0123456789');
$rand = [];
for($i=mt_rand(1,2);$i<=2;$i++){
shuffle($seed2);
$rand[]=$seed2[0];
}
while(count($rand)!=6){
shuffle($seed);
$rand[]=$seed[0];
}
shuffle($rand);
print $feedID = implode('',$rand);
编辑:如果json位于某个端点上,则可以使用jQuery库。
var jsonObjects = JSON.parse("yourJsonString");
var distanceSum = 0;
for(var i=0; i<jsonObjects.length;i++){
var distance = jsonObjects[i]["Distance [pc]"];
distanceSum = distanceSum + distance;
//do something with distance
}
alert("Average distance " + (distanceSum / jsonObjects.length));
编辑2:
假设您的文件结构如下:
$.get('url/jsonFile.json', function(jsonObjects){
var distanceSum = 0;
for(var i=0; i<jsonObjects.length;i++){
var distance = jsonObjects[i]["Distance [pc]"];
distanceSum = distanceSum + distance;
}
alert("Average distance " + (distanceSum / jsonObjects.length));
});
您应该使用以下代码段
的index.html
index.html
jsonFile.json
答案 1 :(得分:0)
希望这会对你有帮助..
var data = [{
"rowid": 1,
"Host name": "11 Com",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 19.4,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 110.62,
"Effective Temperature [K]": 4742,
"Date of Last Update": "5/14/2014"
}, {
"rowid": 2,
"Host name": "11 UMi",
"Number of Planets in System": 1,
"Planet Mass or M*sin(i)[Jupiter mass]": 10.5,
"Planet Radius [Jupiter radii]": null,
"Planet Density [g": {
"cm**3]": null
},
"Distance [pc]": 119.47,
"Effective Temperature [K]": 4340,
"Date of Last Update": "5/14/2014"
}]
现在数据是一个对象数组,用于获取您需要提供的第一个对象data[0]
,然后您需要提供data[1]
等等。要获得第一个对象的距离,您只需调用data[0]["Distance [pc]"]
,您可以根据数据的长度使用for循环来计算它