在打印JSON数据之前附加字符串

时间:2016-01-01 15:51:43

标签: javascript jquery json ajax

我从AJAX调用获取JSON数据。因此,JSON数据的格式类似于 -

data[0].scores.sadness

所以,最后一部分'悲伤'是情绪之一。我总共有8种情绪。所以,我不想像 -

那样打印
data[0].scores.sadness, data[0].scores.anger

所以,我创造了一个包含所有8种情绪的数组 -

var emotions = ['anger', 'contempt', 'disgust', 'fear', 'happiness', 'neutral', 'sadness', 'surprise'];

我正在使用Jquery动态创建很少的元素,而且每个元素都在其中。 jQuery的循环我将数组附加到JSON响应中,就像这样 -

var emotionPer = $('<div>')
    .text(data[0].scores + "." + emotions[i])
    .appendTo(li);

我面临的问题是,它正在打印[物体] [物体]。{情感名称}

例如 -

[object] [object].anger or [object] [object].sadness

有没有办法解释它像 -

data[0].scores.anger

所以,我可以获得上述价值。

1 个答案:

答案 0 :(得分:3)

.text(data[0].scores[emotions[i]])

您可以通过两种方式访问​​对象内部键的值:

  1. obj.key
  2. obj["key"]
  3. 为什么您的方法不起作用

    var obj = {"name":"void", "on":"stackoverflow"};
    var key = "on";
    
    obj.on // stackoverflow
    obj["on"] // stackoverflow
    obj.key // Will be undefined
    obj[key] // will be stackoverflow.
    

    我希望这是有道理的。