Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将变量保存到JSON文件?_Javascript_Jquery_Html_Json_Ajax - Fatal编程技术网

Javascript 如何将变量保存到JSON文件?

Javascript 如何将变量保存到JSON文件?,javascript,jquery,html,json,ajax,Javascript,Jquery,Html,Json,Ajax,我对JQuery、JS和JSON非常陌生 我正在尝试使用以下代码创建一个基本的保存文件: <script> var myObj, myJSON, text, obj; // Storing data: myObj = { name: "John", age: 31, city: "New York" }; myJSON = JSON.stringify(myObj); $.setJSON("testJSON", myJSON); // Retrieving data: text

我对JQuery、JS和JSON非常陌生

我正在尝试使用以下代码创建一个基本的保存文件:

<script>
var myObj, myJSON, text, obj;

// Storing data:
myObj = { name: "John", age: 31, city: "New York" };
myJSON = JSON.stringify(myObj);
$.setJSON("testJSON", myJSON);

// Retrieving data:
text = $.getJSON("testJSON.json");
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;

var myObj,myJSON,text,obj;
//存储数据:
myObj={姓名:“约翰”,年龄:31岁,城市:“纽约”};
myJSON=JSON.stringify(myObj);
$.setJSON(“testJSON”,myJSON);
//检索数据:
text=$.getJSON(“testJSON.json”);
obj=JSON.parse(文本);
document.getElementById(“demo”).innerHTML=obj.name;

我很确定$.setJSON不存在,但我找不到用于设置变量的内容。最后,我想设置循环并将文本区域中的文本保存到json文件中

我知道这不是一个很好的设置,我可能应该用php和sql来设置它。但这只会被2个用户使用,而且不会同时使用


任何帮助都很好。

浏览器中的Javascript没有对底层文件系统的API访问权限,因此您将无法以这种方式保存JSON文件。您唯一能做的就是将用户数据聚合成一个表单,并通过AJAX将数据发布到服务器端API


文档应该帮助您理解FormData以及如何发送它。

您必须将
.json
文本解析为JavaScript。然后你就可以去酒店了


JS将不会访问计算机,除非其他一些

您应该(不应该这只是存储json的另一种方式,因为js无论如何都无法通过文件夹访问)将json存储到
localStorage.setItem(keytolaterretrieve,yourJson)

您可以稍后检索它
localStorage.getItem(keytolaterretrieve)
这将返回所需的json

例如:

myObj = { name: "John", age: 31, city: "New York" };
myJSON = JSON.stringify(myObj);
localStorage.setItem("myJson",myJSON);
retreivedJson = localStorage.getItem("myJson");
console.log(retreivedJson);<-- your json will be consoled
myObj={姓名:“约翰”,年龄:31岁,城市:“纽约”};
myJSON=JSON.stringify(myObj);
setItem(“myJson”,myJson);
retreivedJson=localStorage.getItem(“myJson”);

log(retreivedJson) 以下是您可以对文件操作执行的操作

提示用户下载 为JSON创建一个带有
download
属性和
href
的锚

const data={姓名:“约翰”,年龄:31岁,城市:“纽约”};
document.getElementById('download').addEventListener('click',()=>{
设dl=document.createElement('a')
dl.download='test.json'//目标文件名
dl.href=`data:application/json;charset=utf-8,${json.stringify(data)}`
dl.click()
})

保存
您到底想做什么?JavaScript无法访问用户的本地文件系统,因此您不能只编写文件。您可以提示用户下载一些东西,但首先,
getJSON
不返回文本;它返回可以解析为文本(或已解析的数据)的承诺。其次,虽然像ApacheHttpd这样的web服务器可以为您读取文件,但它不会为您编写文件;您需要在服务器上有一些东西来接受发布的数据并将其保存到文件中。它可能是PHP,或CGI脚本,或您选择的语言中的另一个进程的代理。您可以向该活动组件发起请求,通常是使用
$.ajax
,要求它为您保存某些内容。@Phil因此,无法在单个设备上自动生成保存文件,而且该线程有点链接到最后一个(您回答的)线程。您可以使用cookie或本地存储在客户端存储数据。您的要求不明确。正如我所说,您可以提示用户保存一个文件,但该操作的触发和文件的目的地取决于他们;您不能通过编程来实现这一点
myObj = { name: "John", age: 31, city: "New York" };
myJSON = JSON.stringify(myObj);
localStorage.setItem("myJson",myJSON);
retreivedJson = localStorage.getItem("myJson");
console.log(retreivedJson);<-- your json will be consoled