$.ajax({
type: "POST",
url: "../file/json/DataEdit/TscPers.json?+Math.random()",
dataType:'json',
success: function (JsonObj) {
//测试获取json数据
JsonObj["LampGroup"]["North"]["TurnAroundLamp"]["PortNo"]=[1,1,1]; //把json文件中的PortNo修改为[1,1,1]
let DetConfigJsonObj = JsonObj["LampGroup"]["North"]["TurnAroundLamp"]["PortNo"];
console.log("JSON"+DetConfigJsonObj);//打印出来验证一下
},
error:function(){
//
console.log("errorJSON")
}
});
打印出来是1,1,1 但是我看json文件还是初始值 也就是没有真的改成功 请教各位行业的专家,我怎么才能实现修改json文件
你获取的是后台传给前端的json数据没错,但并不是你的json文件本身,
你要修改json文件的内容你可以在后台修改,利用fs模块的修改功能
内存修改了,但是没有进行序列化,所以磁盘物理文件不会修改。能够修改机器文件内容,需要后台程序才具备的权限,所以这个操作要调用后台接口完成。
JSON文件储存在后台服务器中,你前端调用ajax只能读取json文件,并不能改变服务器中存储的JSON数据
$.ajax({
type: "POST",
url: "../file/json/DataEdit/TscPers.json?+Math.random()",
dataType:'json',
success: function (JsonObj) {
//测试获取json数据
var JsonObj2 = JsonObj["LampGroup"]["North"]["TurnAroundLamp"]["PortNo"]=[1,1,1]; //把json文件中的PortNo修改为[1,1,1
let DetConfigJsonObj = JsonObj2["LampGroup"]["North"]["TurnAroundLamp"]["PortNo"];
console.log("JSON"+DetConfigJsonObj);//打印出来验证一下
},
error:function(){
//
console.log("errorJSON")
}
});
定义一个新的就好了
改文件为什么要交给前台,直接在后台不行吗
谢谢各位大佬的耐心解答 很想每个人都采纳 小白不太懂我
凡是读写文件的,前端除了ie没人可以实现,因为这个问题和用户安全有关,如果允许这么做的话,你电脑的文件人家可以夏季二稿了