Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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并返回新的json_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 如何处理json并返回新的json

Javascript 如何处理json并返回新的json,javascript,angularjs,json,Javascript,Angularjs,Json,我想做的是一个angular应用程序,它读取json文件并显示它们,允许用户使用html控件编辑json文件。然后,用户可以根据他们的选择创建一个新的json对象并显示它 下面是一张图片,帮助描述我正在尝试做的事情: 因此,用户看到了这一点,他们做出了某些选择,例如锁定或删除它们,然后点击create,并根据他们选择锁定或删除的对象返回一个新的json文件 目前,我只有一个标准的angular应用程序,可以获取并显示json: var app = angular.module('myApp',

我想做的是一个angular应用程序,它读取json文件并显示它们,允许用户使用html控件编辑json文件。然后,用户可以根据他们的选择创建一个新的json对象并显示它

下面是一张图片,帮助描述我正在尝试做的事情:

因此,用户看到了这一点,他们做出了某些选择,例如锁定或删除它们,然后点击create,并根据他们选择锁定或删除的对象返回一个新的json文件

目前,我只有一个标准的angular应用程序,可以获取并显示json:

var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
  $http.get("http://www.w3schools.com/angular/customers.php").then(function (response) {
      $scope.myData = response.data.records;
  });

  $scope.createJson = function(){
    // Create new json file
  };
});
我的html/my angular应用程序的主体目前看起来如下所示:

<div ng-app="myApp" ng-controller="customersCtrl">

<table>
  <tr ng-repeat="x in myData">
    <td>{{ x.Name }}</td>
    <td>{{ x.City }}</td>
    <td>{{ x.Country }}</td>
    <td><input type="checkbox" name="lock" value="{{x.Name}}"></td>
    <td><input type="checkbox" name="delete" value="{{x.Name}}"></td>
  </tr>
</table>

<button ng-click="createJson()">Create</button>

</div>

{{x.Name}
{{x.城市}
{{x.国家}
创造
实际上,我不确定目前我的方法是否正确,如果正确,我也不知道下一步该怎么做

另外,这只是我为了学习/测试而使用的测试数据,不是我的数据,我从:

你可以试试

JSON.stringify($scope.myData)

这将为您提供数据对象的字符串表示。其余部分由您决定,您可以将其分配到textarea,将其发回服务器(在这种情况下,您甚至不需要在之前对其进行编码)等。

您应该使用

<td><input type="checkbox" name="lock" value="{{x.Name}}"></td>
<td><input type="checkbox" name="delete" value="{{x.Name}}"></td>
并使用将其添加到您的myData中

$scope.myData.push(newObject);

通过创建一个新的空JSON对象,我最终创建了一个合适的解决方案:

var newJson = [];
并通过循环我的原始条目并使用array.push()添加所选条目来填充它:

for (var person in $scope.myData){
  if($scope.myData[person].Delete === false || $scope.myData[person].Lock === true){
    newJson.push($scope.myData[person])
  }
}

请分享图片中产生上述html的html。还有你的控制器代码
$scope.myData.push(newObject);
var newJson = [];
for (var person in $scope.myData){
  if($scope.myData[person].Delete === false || $scope.myData[person].Lock === true){
    newJson.push($scope.myData[person])
  }
}