例如,我有一个 .JSON
文件,其中包含以下内容:
[{"honda": "accord", "color": "red"},{"ford": "focus", "color": "black"}]
将另一个对象 {"nissan": "sentra", "color": "green"}
推送到此 .json
数组中的 javascript 代码是什么使 .json
文件看起来像
[{"honda": "accord", "color": "red"},{"ford": "focus", "color": "black"},{"nissan": "sentra", "color": "green"}]
我问的原因是我在网上找到很多关于如何使用 AJAX 从 .json 文件中提取数据但不使用 AJAX 将新数据写入 .json 文件以更新 .json 文件的信息数据。
任何帮助将不胜感激!
最佳答案
您必须清楚“JSON”是什么意思。
有些人错误地使用术语 JSON 来指代普通的旧 JavaScript 对象,例如 [{a: 1}]
。这个恰好是一个数组。如果要向数组中添加新元素,只需 push
即可,如
var arr = [{a: 1}];
arr.push({b: 2});
< [{a: 1}, {b: 2}]
JSON 这个词也可以用来指代以 JSON 格式编码的字符串:
var json = '[{"a": 1}]';
注意(单)引号表示这是一个字符串。如果你有这样一个从某个地方获得的字符串,你需要首先将它解析成一个 JavaScript 对象,使用 JSON.parse
:
var obj = JSON.parse(json);
现在您可以以任何您想要的方式操作对象,包括如上所示的 push
。如果你想把它放回 JSON 字符串,那么你使用 JSON.stringify
:
var new_json = JSON.stringify(obj.push({b: 2}));
'[{"a": 1}, {"b": 1}]'
JSON 也被用作格式化数据的常用方法,以便将数据传输到服务器或从服务器传输数据,并可以将其保存(持久化)。这就是 ajax 的用武之地。Ajax 用于从服务器获取数据(通常为 JSON 格式)和/或将 JSON 格式的数据发送到服务器。如果您收到来自 JSON 格式的 ajax 请求的响应,您可能需要如上所述的 JSON.parse
它。然后您可以操作该对象,使用 JSON.stringify
将其重新转换为 JSON 格式,并使用另一个 ajax 调用将数据发送到服务器进行存储或其他操作。
您使用术语“JSON 文件”。通常,"file"一词用于指代某些设备上的物理文件(不是您在代码中处理的字符串或 JavaScript 对象)。浏览器无法访问您机器上的物理文件。它无法读取或写入它们。实际上,浏览器甚至没有"file"的概念。因此,您不能只在本地机器上读取或写入一些 JSON 文件。如果您要向服务器发送 JSON 或从服务器发送 JSON,那么当然,服务器可能会将 JSON 存储为文件,但更可能的是,服务器会根据从数据库中检索到的数据,基于一些 ajax 请求来构建 JSON ,或者在一些ajax请求中解码JSON,然后将相关数据存储回其数据库中。
你真的有一个“JSON 文件”吗?如果有,它在哪里存在,你从哪里得到它?您是否有一个 JSON 格式的字符串,您需要对其进行解析、mainpulate 并转换回一个新的 JSON 格式的字符串?您是否需要从服务器获取 JSON,并对其进行修改,然后将其发送回服务器?还是您的“JSON 文件”实际上只是一个 JavaScript 对象,您只需要使用普通的 JavaScript 逻辑进行操作?
https://stackoverflow.com/questions/32546100/