如何在textearea中逐行阅读并转换为JSON AngularJS

时间:2015-12-17 17:37:13

标签: javascript angularjs json

我有一个textarea,其中包含以下格式的值

param01 : value01
param02 : value02

为什么我试试

<div class="col-xs-4 input-container">
  <textarea id="gateway-params" ng-disabled="!edit">{{gatewayParams}}</textarea>
</div>

JS:

$scope.save = function() {
   for (var i = 0; $scope.gatewayParams; i++) {
      console.log(params[i]);
   }
 }

我想逐行阅读textearea并构建一个Javasript对象。

Regars!

2 个答案:

答案 0 :(得分:1)

//编辑,不要添加空键/值

她是一名傻瓜:http://plnkr.co/edit/Zea3zZqaagDdO4s8pZRC?p=preview

控制器方:

$scope.text = 'param01 : value01\nparam02 : value02\nparam03 : value03\nparam04 : value04\nparam05 : value05\nparam06 : value06\n';    

$scope.actionme = function(){   
    var lines = $scope.text.split("\n");// you get the lines
    var datas ={}; 
    for(var i in lines){
      var line = lines[i].split(":"); // you get the key / value
      // add only if the key and value not empty
      if((line.length ==2)&&(line[0].trim()!="")&&(line[1].trim()!="")){
        datas[line[0].trim()]  = line[1].trim();
      }
    }
    console.log(JSON.stringify(datas));
}

html

<div ng-controller="Ctrl">
   <textarea ng-model="text"> 
   </textarea>

  <button ng-click="actionme()">click</button>

</div>

答案 1 :(得分:0)

在textarea中使用ng-model,您可以将内容捕获为字符串并在控制器/指令中解析。

您可以使用

- (id) returnStuff {
NSData *data = [myUserDefaults objectForKey:myKey];
if([data isKindOfClass:[NSData class]) {
    // then it must be an archived object
    return (desiredObjectClass*)[NSKeyedUnarchiver unarchiveObjectWithData:data];
}
else { 
    NSUInteger returnInt = [myUserDefaults integerForKey:myKey];
    return [NSNumber numberWithInteger: returnInt];
}

通过换行将字符串拆分为字符串数组。我将离开解析给你,但这是你设置对象的方式:

.split('\n');