将JSON对象保存为AngularJS中的文件

时间:2018-04-18 13:11:33

标签: javascript angularjs json

我想知道是否有任何方法可以将JSON对象保存为项目目录中的.json文件。我有一个表单,每次用户填写它,我想要附加JSON文件。我目前只使用AngularJS。

2 个答案:

答案 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;
&#13;
&#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?