将json对象保存为文本文件

时间:2015-12-19 21:07:33

标签: javascript json

我正在使用一个叫做DeepBot的Twitch.tv流媒体机器人的API。

以下是github https://github.com/DeepBot-API/client-websocket

上的链接

我的目标是创建一个文本文档,列出使用命令api|get_users|从机器人中提取的所有信息。机器人的响应总是一个json对象。如何从机器人中获取json对象并将其另存为文本文件?

编辑:我的代码

var WebSocket = require('ws');
var ws = new WebSocket('ws://Ip and Port/');
ws.on('open', function () {
    console.log('sending API registration');
    ws.send('api|register|SECRET');
});

    ws.on('close', function close() {
    console.log('disconnected');
});
ws.on('message', function (message) {
    console.log('Received: ' + message);
    });

ws.on('open', function () {
    ws.send('api|get_users|');
});  

2 个答案:

答案 0 :(得分:1)

那取决于你的设置如何?你在javascript下发布了这个。所以我猜你要么:

  • 使用浏览器进行websocket连接,在这种情况下没有直接的方法来保存客户端上的文件。但是在HTML5中,您可以使用本地存储来存储键值对。
  • 使用节点js(服务器端javascript),代码如下:
  • 其他一些设置,我无法猜测。在女巫的情况下,你可以多说一点吗?

在具有HTML5功能的浏览器中:

// where msg is an object returned from the API
localStorage.setItem('Some key', JSON.stringify(msg));

在Node JS中

var fs = require("fs"); // Has to be installed first with “npm install fs”

// where msg is an object returned from the API
fs.writeFile("some-file.json", JSON.stringify(msg), function (err) {
  if (err) throw err;
});

编辑:好的,谢谢你清理它。 我相信布拉格的解决方案是可行的。

祝你的项目好运!

答案 1 :(得分:0)

如果是客户端JS保存:

Create a file in memory for user to download, not through server

Convert JS object to JSON string

你需要什么。 (我不测试它,但它看起来像这样:)

var j = {"name":"binchen"};
var s = JSON.stringify(j); 
window.location = 'data:text/plain;charset=utf-8,'+encodeURIComponent(s);