我从服务器端获得了连续的JSON输出。
{"first":"XXXABC1","second":{"t":35,"p":800}}
{"first":"XXXXABC2","second":{"t":35,"p":1000}}
{"first":"XXXXABC2","second":{"t":35,"p":1000}}
我想使用开头的JSON数据(以800或显示的任何数字)记录并固定p的值。有什么办法吗?抱歉让您感到困惑
我可以在底部添加此代码吗?
document.getElementById("p2").innerHTML = message.second.p[0];
...
function doSend()
{
var jsonGetData = {"command": 1, "second":["p","t"]};
var jsonGetDataAll = {"command": 2};
{
console.log("SENT: " + JSON.stringify(jsonGetData));
websocket.send(JSON.stringify(jsonGetData));
}
}
function onMessage(evt)
{
var message = JSON.parse(evt.data);
console.log('>RESPONSE: ' +evt.data);
document.getElementById("t").innerHTML = message.second.t;
document.getElementById("p").innerHTML = message.second.p;
}
答案 0 :(得分:0)
这很简单,请尝试以下操作:
//For JSON Object from server
var jsonObject = {
"first": "XXXABC1",
"second": {
"t": 35,
"p": 800
}
};
let expected_value = '';
if (jsonObject.second.p != null && jsonObject.second.p != undefined && isFinite(jsonObject.second.p)) {
expected_value = jsonObject.second.p;
}
console.log(expected_value);
//For JSON Array from server
var jsonArray = [
{
"first": "XXXABC1",
"second": {
"t": 35,
"p": 800
}
},
{
"first": "XXXXABC2",
"second": {
"t": 35,
"p": 1000
}
},
{
"first": "XXXXABC2",
"second": {
"t": 35,
"p": 1200
}
},
];
let expected_value = '';
if (jsonArray.length > 0) {
let jsonObject = jsonArray[0];
if (jsonObject.second.p != null && jsonObject.second.p != undefined && isFinite(jsonObject.second.p)) {
expected_value = jsonObject.second.p;
}
}
console.log(expected_value);
答案 1 :(得分:0)
如果我理解正确,您想获取JSON数组的第一项,然后使用数组索引:
function onMessage(evt)
{
var message = JSON.parse(evt.data);
console.log('>RESPONSE: ' +evt.data);
if(evt.data.length && evt.data.length > 0){
document.getElementById("t").innerHTML = message[0].t;
document.getElementById("p").innerHTML = message[0].p;
}
}