例如,我有一个.JSON具有以下内容的文件:
.JSON
[{"honda": "accord", "color": "red"},{"ford": "focus", "color": "black"}]
将另一个对象推{"nissan": "sentra", "color": "green"}入此.json数组以使.json文件看起来像的JavaScript代码是什么
{"nissan": "sentra", "color": "green"}
.json
[{"honda": "accord", "color": "red"},{"ford": "focus", "color": "black"},{"nissan": "sentra", "color": "green"}]
我要问的原因是我在网上找到了很多有关如何使用AJAX从.json文件中提取数据的信息,但没有使用AJAX将新数据写入.json文件以用其他数据更新.json文件。
任何帮助,将不胜感激!
您必须清楚“ JSON”的含义。
某些人错误地使用术语JSON来指代简单的旧JavaScript对象,例如[{a: 1}]。这个恰好是一个数组。如果要向数组添加新元素,只需添加数组push,如
[{a: 1}]
push
var arr = [{a: 1}]; arr.push({b: 2}); < [{a: 1}, {b: 2}]
JSON这个词也可以用来表示以JSON格式编码的字符串:
var json = '[{"a": 1}]';
请注意(单引号)指示这是一个字符串。如果您有从某个地方获得的字符串,则需要使用以下命令首先将其解析为JavaScript对象JSON.parse:
JSON.parse
var obj = JSON.parse(json);
现在,您可以按任意方式操作对象,包括push上面所示的操作。如果然后要将其放回JSON字符串中,则可以使用JSON.stringify:
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格式JSON.stringify,并使用另一个ajax调用将数据发送到服务器以进行存储或其他操纵。
您使用术语“ JSON文件”。通常,“文件”一词用于指某个设备上的物理文件( 不是 您在代码中处理的字符串或JavaScript对象)。浏览器无法访问您计算机上的物理文件。它无法读取或写入它们。实际上,浏览器甚至没有真正具有“文件”的概念。因此,您不能只在本地计算机上读取或写入一些JSON文件。如果要向服务器发送和从服务器发送JSON,那么服务器当然可以将JSON存储为文件,但是服务器更有可能根据一些ajax请求并根据从数据库检索到的数据来构造JSON。 ,或在一些ajax请求中解码JSON,然后将相关数据存储回其数据库中。
您是否真的有“ JSON文件”,如果存在,它在哪里存在以及从何处获得?您是否有JSON格式的字符串,需要解析,维护和转换回新的JSON格式的字符串?您是否需要从服务器获取JSON并进行修改,然后将其发送回服务器?还是您的“ JSON文件”实际上只是一个JavaScript对象,您只需要使用普通的JavaScript逻辑进行操作?