所以我有聊天应用程序,这个JSON:
{
"561c": [{
"from": "561c",
"fromname": "ryan",
"to": "sasa",
"messgae": "hey"
}, {
"from": "5512",
"fromname": "sasa",
"to": "ryan",
"messgae": "hey too"
}]
}
但是当用户发送消息时,此JSON将始终加起来。我想从“message”中取最后值,在我的文字转语音代码中使用此值,如何编写代码?
这是我的文字转语音:
$scope.speakText = function() {
TTS.speak({
text: ***this place is for the code***,
locale: 'en-GB',
rate: 0.75
}, function () {
// handle the succes case
}, function (reason) {
// Handle the error case
});
};
答案 0 :(得分:2)
在对象'561c'上使用forEach循环,如
var messArray = [];
561c.forEach(function(obj){
messArray.push(obj.message)})
var text = messArray.join();
您将获得messArray中的所有消息。 如果我理解你的问题是正确的。
答案 1 :(得分:1)
//获取数组的最后一个元素
var lastIndex = 561c.length();
var lastObj = 561c[lastIndex];
//从数组561c的最后一个对象获取消息
var lastMessage = lastObj.message;
你得到了你想要的东西(y);
答案 2 :(得分:0)
您可以使用"采摘" underscore.js的函数 - http://underscorejs.org/#pluck
_。采摘(你的JSON数组,' messgae');
答案 3 :(得分:0)
您可以将$ scope传递给您的函数然后传递561c您将获得对象然后您可以在其中索引消息
示例:
$scope.chat = {
"561c": [{
"from": "561c",
"fromname": "ryan",
"to": "sasa",
"messgae": "hey"
}, {
"from": "5512",
"fromname": "sasa",
"to": "ryan",
"messgae": "hey too"
}]
}
angular.module('app',[]).controller('myctrl', function($scope, data){
$scope.561c = data.messgae;
}