如何从包含 "X": "Y", 的输出中过滤信息

How to filter information from an output that consists of "X": "Y",

我正在使用 NodeRed 并使用 Twitter 节点。我正在尝试弄清楚如果用户发推 'X'.

如何回复他们

输出包含大量信息,所有信息均以逗号分隔,并且全部包含 "x": "y",

"User": "SanderSchaeffer", "Tweet": "This is my tweet", "date": "01-02-2015", 等等

我该如何过滤,最好是使用 Javascript 或 JSON,只过滤 "user" 包含的信息?所以输出将是 'SanderSchaeffer'?

或bottom-line:如何使用 NodeRed 回复用户? :)

抱歉标题不便,但我不知道这种信息输出方式的名称

试试这个

var myOutput = '"User": "SanderSchaeffer", "Tweet": "This is my tweet", "date": "01-02-2015"';
var parse = JSON.parse('{'+myOutput +'}');
var userName = parse.User;

Javascript 具有将 JSON 数据转换为 JavaScript 对象的内置函数。然后,您可以访问 JSON 变量作为对象的属性。

只需使用以下代码将JSON解析为javascript:

var text = JSON code you retrieved;
var obj = JSON.parse(text);

然后您可以通过对象访问变量数据来使用它们:

document.write(obj.User);
document.write(obj.Tweet);
document.write(obj.date);
....

可以在 http://www.w3schools.com/js/js_json.asp 找到更多信息 这也解释了如何访问 JSON 个对象的数组。

可以使用Node-RED Switch节点进行过滤。

您可以将其设置为作用于 msg.payload 值并使用 contains 选项,然后在框中输入您想要匹配的文本。

这应该只允许匹配通过的推文。然后您可能想使用功能节点来制作合适的响应。

编辑:

要仅获取发送用户 ID,您可以从功能节点中访问它,如下所示:

msg.tweet.user.screen_name