JSON 'undefined'结果



对 JSON 来说非常新。

碰到了一个轻微的颠簸。

我有一个提要,如果没有注释的数据,它会将该字符串返回为"未定义"

我只想删除"未定义"的文本并将其保留为空。

这是我的 JS

        document.getElementById("tooltipwrap0").innerHTML = '<span style="font-size:22px; font-weight:600;">' + data.users[0].member + " " + data.users[0].party + "-" + data.users[0].state + "<br/>" + '<span style="font-size:18px; font-weight:300;">' + data.users[0].commentnotes + "";

这是我的提要示例

   var data={
"users": [
    {
        "member": "first name",
        "party": "F",
        "state": "Ala.",

    },

任何帮助不胜感激,谢谢!

使用 in 运算符测试条件中的存在性,例如

if ("commentnotes" in data.users[0])
    // append data.users[0].commentnotes to your string

但是,由于它将产生的undefined值是伪造的,您可以简单地尝试获取它并在没有任何内容时使用空字符串:

data.users[0].commentnotes ? data.users[0].commentnotes : ""

可以缩短为

data.users[0].commentnotes || ""

请注意,在字符串串联中使用此表达式时,必须将其括在括号中。

您可以使用

(data.users[0].commentnotes || '')默认为空字符串,以防实际值为假值或未定义。

试试这个:

var innerHTML = '<span style="font-size:22px; font-weight:600;">' + data.users[0].member + " " + data.users[0].party + "-" + data.users[0].state + "<br/>" + '<span style="font-size:18px; font-weight:300;">';
if (data.users[0].commentnotes){
  innerHTML += data.users[0].commentnotes;
}
document.getElementById("tooltipwrap0").innerHTML = innerHTML;