我想知道是否有任何方法可以将JSON对象保存为项目目录中的.json文件。我有一个表单,每次用户填写它,我想要附加JSON文件。我目前只使用AngularJS。
答案 0 :(得分:1)
AngularJS只是JavaScript,所以使用任何方法都可以让你用JS保存文件(使用后端像PHP 更好)。其中一种方法是FileSaver.js
(使用HTML5功能)。
这是一个有效的演示:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.myJSON = {
"A": "B"
};
$scope.saveJSON = function(json) {
var jsonse = JSON.stringify(json);
var blob = new Blob([jsonse], {
type: "application/json"
});
$scope.filename = $scope.filename || "my_json";
saveAs(blob, $scope.filename + ".json");
}
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
Some JSON:
<pre>
{{myJSON | json}}
</pre>
File Name: <input type="text" ng-model="filename" /><br>
<button ng-click="saveJSON(myJSON)">Save</button>
</div>
&#13;
或者你可以像PHP一样向后端发送请求
$http.post("createJSON.php",json).then((res)=>{...}, (err)=>{...})
并收到:
<?php
$dataReceived = file_get_contents('php://input');
$myFile = json_decode( $dataReceived );
$path = $myFile->path; // path to store it in
$name = $myFile->name; // file name
$JSON = $myFile->json; // content
# Storing file
$file = fopen($path.$name.".json", 'w');
fwrite($file, $JSON);
fclose($file);
?>
答案 1 :(得分:0)
您无法使用javascript将文件保存到磁盘。也许你真的需要nodejs,并使用fs模块。 Is it possible to write data to file using only JavaScript?