【问题标题】:Write in a file Json already exist写入文件Json已经存在
【发布时间】:2014-05-01 13:06:15
【问题描述】:

我找到了这个页面How can I pretty-print JSON using node.js?,我认为它很有用,但我有一个问题:我有一个页面给出了数组中的请求 sparql 的结果,我只想获取其中的一行结果插入在该行的最后一列中的“添加”按钮,当我在 Json 中取该行时,我想将其写入已与其他数据一起存在的文件 json 中。该按钮调用下一个函数: 函数添加(参数){

      res= param;
    $.ajax({
      type: "POST",
      url: "....",
      data: { nom:resource,abstract:resume,photo:src,indice: res ,fichier:$("#myselect" ).val()}
      })
      .done(function( msg ) {
        alert( "ajout réussie"+msg);
        window.location.reload();
    });

};

其中 res 是我要添加的行的索引,以及我需要添加的所有数据。 所以我想知道如何更改此代码以使用“Larry Battle”发布的最后一个代码。我必须将他的代码放在一个文件“add.js”中,然后在 url 中调用这个文件?或者怎么做?

我的示例链接:https://www.dropbox.com/s/noyh1ltwljlpevw/Capture%20du%202014-05-01%2019%3A05%3A04.png

【问题讨论】:

    标签: ajax json node.js file


    【解决方案1】:

    最简单的方法可能是获取原始 json 文件,在内存中添加新数据,然后将对象另存为漂亮的 json 文件(如果您愿意,可以覆盖原始文件)。

    我不确定您所说的“res 是我要添加的行的索引”是什么意思,所以我假设它是您序列化为 JSON 的 javascript 对象中的属性名称。所以总的来说它看起来像这样:

    var fileData = require('/path/to/jsonData.json');
    // fileData is now a JS object that was parsed from the json file); this is a sync operation.
    
    fileData[res] = data; // data object from your existing code.
    
    // write fileData to a JSON file like you were going to do before.
    

    【讨论】:

    • 感谢您的回答。
    • 感谢您的回答。我编辑了我的第一篇文章,在链接上查找图片,我有一个包含 1 行的数组,sor res=0,如果我在这个数组中有 2 行 res 将等于 1(所以我可以访问第 0 行的数据和/或 1)。所以我的问题是,当我单击“ajouter”按钮时,我想将所有在线数据以 json 格式写入已与其他数据一起存在的文件中。这就是为什么我放了一个链接,我发现它在哪里是要在文件 json 中写入的代码,我的问题是我可以在不编辑的情况下使用此代码吗?或者我必须改变一些东西?以及如何在我的函数中使用此代码。
    • 您的链接对我不起作用。所以,我的建议是基于假设(在你的标题中)你有一个在你的架构中运行 node.js 的服务器进程。我的代码是 JS,应该在 node.js 代码的某个地方。您的代码是基于 jquery 的,所以它将在浏览器中。因此,如果您的服务器代码将按照您的代码所建议的那样从客户端接收数据,那么它所要做的就是我所建议的。
    • 好的,但是我不想覆盖原来的,我只是想在原来的地方加一个新行,所以当你写fileData[res]=data;这意味着什么?它如何解释为 json 格式?我不需要使用“JSON.stringify”吗?例如 fileData[0] 将在文件的第 0 行写入?
    • 不,看我说的。您首先使用require 读入文件。这为您提供了 JSON 内容的内存表示,作为 javascript 对象。那时,您可以操作它,但是您可以操作普通的 JS 对象;因此,如果 fileData 是一个数组,那么写入 fileData[0] = "something" 将如您所说将数组中的第一个元素替换为单词“something”。如果您想插入或追加,请使用普通的 JS 数组语法来执行此操作。准备好保存更改后,您可以执行 JSON.stringify 并将生成的字符串保存到磁盘;哪个文件由您决定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2020-12-24
    • 2021-07-19
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多