我已使用以下代码从网站调用API。Javascript无法读取JSON数据
function example(){
// Call the callApi function to create a usable
// object named apiObject from the API request URL.
// Put the API request URL in the call
callApi(
'http://summary.ekmmetering.com/summary?meters=10068&key=MTAxMDoyMDIw&format=json&reports=15&limit=1&fields=kWh_Tot*',
function(apiObject){
// This just displays the object in the result div
// you can use what ever code you would like to work
// with the object here
var JSONOBJ = JSON.stringify(apiObject, null, 4)
//document.getElementById("result").innerHTML = JSONOBJ;
document.getElementById("meterVal").innerHTML = JSONOBJ.kWh_Tot_Min;
}
);
};
在的document.getElementById的第一行( “结果”)。innerHTML的= JSONOBJ,输出如下。
[
{
"Start_Time_Stamp_UTC_ms":1486924437363,
"End_Time_Stamp_UTC_ms":1486925099387,
"End_Date":"Sun Feb 12 2017 18:44:59 GMT+0000 (GMT)",
"Start_Date":"Sun Feb 12 2017 18:33:57 GMT+0000 (GMT)",
"Meter":10068,
"Protocol":"v3",
"Count":663,
"rejected_bad":0,
"rejected_duplicates":0,
"kWh_Tot_DeltaMin":0,
"kWh_Tot_DeltaMax":0.1,
"kWh_Tot_Min":127009.1,
"kWh_Tot_Max":127009.8,
"kWh_Tot_Diff":0.7
}
]
但是,一旦我使用的代码
document.getElementById("meterVal").innerHTML = JSONOBJ.kWh_Tot_Min;
第二行这出来代替。
undefined
我需要做些什么才能获得正确的值,即127009.1?
不应该是'JSONOBJ [0] .kWh_Tot_Min;'因为'JSONOBJ'是'[]'的数组? – Mikey
我相信JSONOBJ是一个不是数组的字符串。它采用JSON格式,就像你可能发送给服务器的那样。您可以使用JSON.parse将其重新转换为数组。您可以尝试apiObject [0] .kWh_Tot_Min –