如何从初始JSON输出中获取“ p”的值

时间:2019-06-03 06:22:13

标签: javascript json

我从服务器端获得了连续的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;
  }

2 个答案:

答案 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;
    }        
}