【问题标题】:Read JSON file, update value and save modification [duplicate]读取 JSON 文件,更新值并保存修改 [重复]
【发布时间】:2015-08-26 10:02:29
【问题描述】:

我有一个包含此文本的 JSON 文件:

[
  {
    "key" : "test1",
    "desc": "desc1"
  },
  {
    "key" : "test2",
    "desc": "desc2"
  },
]

我编写了一段代码来读取该文件的内容(使用 AJAX)并将内容显示到 HTML 表格中。

现在,我希望能够更新我的 HTML 数组中的值并将修改保存到 JSON 文件中。

在 JavaScript 中可以吗?

【问题讨论】:

  • "将内容显示到 HTLK 表中" 你是说 HTML 吗?
  • 您可以存储 js,然后在修改 html 时进行修改,否则如果您想通过单击按钮发送 json,您可以从 html 重新生成 json,或者您可以使用数据- attrs 将 json 存储在您希望的任何标签中,并在 html 更新时更新
  • 我建议您将 JSON 解析为 JavaScript 对象(使用 JSON.parse() 方法),并修改 JavaScript 对象中的内容。现在,一旦您完成更改,您可以简单地将 JavaScript 对象转换回 JSON(使用 JSON.stringfy() 方法),并将内容传递到服务器,在那里您可以使用任何服务器端代码重写文件。跨度>

标签: javascript jquery ajax json


【解决方案1】:

您需要一种服务器端技术来修改文件内容。如果你使用PHP就像读取文件一样简单,转换为数组并修改你需要的值,然后返回json解码值再次写入文件。

如果你只使用 javascript,也许你需要使用 Node.js 作为服务器端解决方案。

【讨论】:

    【解决方案2】:

    您应该使用服务器端脚本。下面是我的php代码:

    首先,您需要对其进行解码:

    $jsonString = file_get_contents('jsonFile.json');
    $data = json_decode($jsonString);
    

    然后更改数据:

    $data[0]['desc'] = "TENNIS";
    // or if you want to change all entries with key "1"
    foreach ($data as $key => $entry) {
        if ($entry['key'] == 'test1') {
            $data[$key]['desc'] = "TENNIS";
        }
    }
    

    然后重新编码并保存回文件中:

    $newJsonString = json_encode($data);
    file_put_contents('jsonFile.json', $newJsonString);
    

    以上是示例,但您可以理解逻辑。

    【讨论】:

      猜你喜欢
      • 2021-07-27
      • 2021-05-31
      • 2014-01-28
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2018-10-27
      相关资源
      最近更新 更多