javascript - 我想更新 .json 文件,请告诉我如何操作

标签 javascript php jquery node.js web

以下是代码:我正在编写一个函数来更新 json 文件中的颜色属性。我能够更新对象,但无法将其写回文件(修改文件)。当用户通过表单输入时,我需要更新 json 数据文件。

 function updatecolor(id, color) {
   $.ajax({
     type: "GET",
     dataType: "json",
     url: "Data.json",
     cache: false,
     beforeSend: function() {
       $('#table').html('loading please wait...');
     },
     success: function(jsondata) {
       console.log(jsondata);
       count = jsondata.length;
       for (i = 0; i < jsondata.length; i++) {

         if (jsondata[i].id == id)
           jsondata[i].color = color;


       }

       window.alert(JSON.stringify(jsondata));
     }
   });
 }

 function popupform() {
   $('#formpop').show();
 }

 function my() {
   $.ajax({
     type: "GET",
     dataType: "json",
     url: "Data.json",
     cache: false,
     beforeSend: function() {
       $('#table').html('loading please wait...');
     },
     success: function(jsondata) {
       console.log(jsondata);
       count = jsondata.length;
       var str = '';
       var str2 = '';
       var str3 = '';
       //str += '<ul>';
       $.each(jsondata, function(idx, obj) {
         var match = obj.Color;
         if (match == "Blue") {
           str += 'ID :' + obj.id + '    Color : ' + obj.Color + '<br> ';
         }
       });
       $.each(jsondata, function(idx, obj) {
         var match = obj.Color;
         if (match == "Red") {
           str2 += 'ID :' + obj.id + '    Color : ' + obj.Color + '<br> ';
         }
       });
       $.each(jsondata, function(idx, obj) {
         var match = obj.Color;
         if (match == "Green") {
           str3 += 'ID :' + obj.id + '    Color : ' + obj.Color + '<br> ';
         }
       });
       //str += '</ul>';
       $('#abc').html(str);
       $('#abc2').html(str2);
       $('#abc3').html(str3);
     }

   });
 }

编辑 - 从评论部分添加服务器代码:

var http = require("http"); 

var fs = require("fs"); 

function send404Response(response){ 
  response.writeHead(404, {"Content-Type": "text/plain"}); 
  response.write("Error 404 - Page not found"); 
  response.end(); 
} 

function onRequest(request, response) { 
  if( request.method == 'GET' && request.url == '/' ){ 
    response.writeHead(200, {"Content-Type": "text/html"}); //Open file as readable stream, pipe stream to response object 
    fs.createReadStream("./index.html").pipe(response);
  }else{
    send404Response(response); 
  } 
} 

http.createServer(onRequest).listen(8888);

最佳答案

https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback

Node.js 包含一个将数据写入文件的函数。使用fs.writeFile()写入您想要的文件。请注意,如果文件已存在,它将替换该文件。

还有一个 fs.write() 函数,看起来您可以附加到现有函数的末尾。

关于javascript - 我想更新 .json 文件,请告诉我如何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35966499/

相关文章:

JavaScript 调试问答 : How do I `console.log()` Map?

javascript - 完全合并两个多维数组并生成一个新数组

php - 我正在尝试使用 MAMP 从 mysql 检索数据

javascript - foreach 循环未更新数据和 undefined variable 错误

javascript - 如何在nodejs中使用crypto.randomBytes来使用异步/等待?

javascript - 包含 "."的数字问题,例如 1.11 或 .111

php - in_array 在应该返回 true 时返回 false

jquery - 编码多状态排序或多列?

jquery - 在下拉菜单中处理父 ul 宽度的更好方法

javascript - Jquery添加多个div