如何在 JavaScript 中编辑外部 JSON 文件
How to edit an external JSON-file in JavaScript?
我按照Esther Crawford的教程创建了一个小聊天机器人。此机器人检查输入用户的字符串,并使用我的 json 答案之一进行响应。
例如,如果我说"你好",机器人会回应"嘿,我很高兴你设置了 EstherBot!
脚本.json
{
"HELLO": "Hey, I'm so glad you set EstherBot up!",
"I LOVE YOU": "Awh, shucks! I love you too!",
"CONNECT ME": "",
"DISCONNECT": "Roger that, EstherBot is back."
}
我的问题是:如何在JavaScript中编辑我的script.json?
当用户输入未知字符串时,机器人将回答它不理解。
脚本.js
if (!_.has(scriptRules, upperText)) {
return bot.say('Sorry I dont understand').then(() => 'speak');
}
我如何获取用户的这个未知字符串并通过在 JavaScript 中编辑我的 JSON 文件将其添加到我的 script.json 文件中?
我希望我的机器人自己学习,如果他不知道答案,它应该自动将用户的问题添加到 script.json 文件中,向用户询问答案,然后将此答案也添加到 script.json 文件中。
非常感谢您的帮助!你可以在 git 上找到这个项目,其中包含完整的代码 这里.
你不能使用客户端脚本保存在文件中,你必须使用一些服务器端脚本,如PHP,NodeJS等来保存文件中的内容。
例如,在 NodeJS 中,您可以使用 fs 库:
fs = require('fs');
var name = 'fileName.json';
var m = JSON.parse(fs.readFileSync(name).toString());
m.forEach(function(p){
p.name= m.name;
});
fs.writeFileSync(name, JSON.stringify(m));
希望对你有帮助
不幸的是,如果没有服务器端代码 - 这将接受请求并将文件存储在服务器上 - 不可能保存文件。
但是,您可以使用本地存储。
例如:
//If statement to check if localStorage already stored.
if (!localStorage.script) {
localStorage.script = JSON.stringify({
"HELLO": "Hey, I'm so glad you set EstherBot up!",
"I LOVE YOU": "Awh, shucks! I love you too!",
"CONNECT ME": "",
"DISCONNECT": "Roger that, EstherBot is back."
}) ;
}
//This will load the localStorage data into an object in the varaible called botScript
var botScript = JSON.parse(localStorage.script) ;
function saveScript() {
//This will save the current object to the localStorage.
localStorage.script = JSON.stringify(botScript) ;
}
您可以在 http://www.w3schools.com/html/html5_webstorage.asp 阅读更多内容。
如果您希望会话存储是临时的,也可以使用会话存储。
假设你已经加载了 json:
var json = '{"hola":"ciao"}';
//Parse the JSON: convert it into an object
var parsedJson =JSON.parse(json);
//add whatever you want
parsedJson.hi = 'bye';
您的 json var 将如下所示:
Object {hola: "ciao", hi: "bye"}
然后,您可以将对象转换为字符串,执行JSON.stringify(parsedJson)
并在后端(即:NodeJs)中操作它,则写回磁盘/数据库。
- 如何在 JavaScript 中编辑外部 JSON 文件
- 将外部Json渲染为玉
- 主干从外部json填充集合
- 从外部json代码向amcharts图表添加数据
- Angularjs赢得't从外部json文件中读取
- 带有外部JSON文件的Ionic框架
- 在外部JSON文件中存储对象数组
- 在Javascript或Jquery中,如何将外部json文件作为参数传递给函数
- 解析外部 JSON 文件中的未命名对象
- 如何使用 Javascript 循环遍历外部 JSON 文件数据
- 从外部 JSON 文件创建 JavaScript 变量
- 使用外部 json 文件使用 d3js 创建气泡图
- D3.js外部 JSON 文件
- 我有一个外部 json 文件,比如 abc.json.因为它包含{“记住我”:“Acuérdate”}
- 从 API 到数组的外部 JSON
- 使用 jQuery 从外部 JSON 站点 Singleton 类获取数据
- 从外部 json 文件获取数据
- 在 AngularJS 中使用从 websockets 动态获取的外部 JSON 数据自动更新 DOM
- 如何将外部 JSON 数据从上一个任务中生成的文件传递到任务
- 如何查看外部 JSON 文件