JSON'未定义'结果

时间:2013-09-10 19:28:01

标签: javascript json

对于json来说很新鲜。

轻微撞击。

我有一个Feed,如果没有注释的数据,它会将该字符串作为“undefined”返回

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

这是我的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 + "";

这是我的Feed的一个示例

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


    },

感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:1)

使用in operator测试条件是否存在,例如

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 || ""

请注意,当您在字符串连接中使用此表达式时,必须将其包装在括号中。

答案 1 :(得分:0)

如果实际值是假的或未定义的,您可以使用(data.users[0].commentnotes || '')默认为空字符串。

答案 2 :(得分:0)

试试这个:

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;