简体   繁体   English

ng-repeat中的Json Object

[英]Json Object in ng-repeat

response object like 响应对象

$scope.list= [
Object {
  cid=74,
  date="2016-08-25T00:00:00.000+0530",
  optkey="key",
  optvalue="{
    value:{
      'name':test,
      'gender':male
    }
  }"
},
Object {
 cid=75,
 date="2016-08-25T00:00:00.000+0530",
 optkey="key",
 optvalue="{
   value:{
     'name':test2,
     'gender':female
   }
 }"
}},
Object {
  cid=77,
  date="2016-08-26T00:00:00.000+0530",
  optkey="key",
  optvalue="{
    value:{
      'name':test1,
      'gender':female
    }
  }"
}]

and in html page used ng-repeat 并在html页面中使用ng-repeat

<div ng-repeat="item in list">
  {{item.date}} -- works fine
</div>

here how to display json value in object optvalue, done some code like. 在这里,如何在对象optvalue中显示json值,做了一些类似的代码。

<div ng-repeat="item in list">
  {{item.optvalue.value}} -- but it is undefined
</div>

but it is not working can any one give hint for this 但任何人都无法为此提供提示

Just because your optvalue is a String but not a object. 仅仅因为您的optvalue是一个String而不是一个对象。 It should be : 它应该是 :

optvalue = {
    value:{
      'name':test1,
      'gender':female
    }
}

In JSON, an object should NOT be in the parenthese. 在JSON,对象应该在parenthese。

Try this working example, please check the object created. 试试这个工作示例,请检查创建的对象。

 var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.list= [ { cid:74, date:"2016-08-25T00:00:00.000+0530", optkey:"key", optvalue:{value:{'name':'test','gender':'male'}} }, { cid:75, date:"2016-08-25T00:00:00.000+0530", optkey:"key", optvalue:{value:{'name':'test','gender':'male'}} }, { cid:76, date:"2016-08-25T00:00:00.000+0530", optkey:"key", optvalue:{value:{'name':'test','gender':'male'}} } ] }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp" ng-controller="myCtrl"> <div ng-repeat="item in list"> {{item.optvalue.value.name}} </div> </div> 

The response JSON is not valid : response JSON无效

  1. Strings should be wrapped in double quotes. 字符串应用双引号引起来。
  2. Expecting colon, not = in key value pairs. 期望冒号,而不是=关键值对中的=。
  3. Invalid characters found. 找到无效的字符。
  4. Invalid number. 无效号码。

Issue Capture : 问题捕获:

在此处输入图片说明

Valid JSON : 有效的JSON:

[
  {
    "cid": 74,
    "date": "2016-08-25T00:00:00.000+0530",
    "optkey": "key",
    "optvalue": {
      "value": {
        "name": "test",
        "gender": "male"
      }
    }
  },
  {
    "cid": 75,
    "date": "2016-08-25T00:00:00.000+0530",
    "optkey": "key",
    "optvalue": {
      "value": {
        "name": "test2",
        "gender": "female"
      }
    }
  },
  {
    "cid": 77,
    "date": "2016-08-26T00:00:00.000+0530",
    "optkey": "key",
    "optvalue": {
      "value": {
        "name": "test1",
        "gender": "female"
      }
    }
  }
]

In your case {{item.optvalue.value}} is giving undefined because optvalue is a string not an object.So, it should be an object . 在您的情况下, {{item.optvalue.value}}给出了undefined因为optvalue是不是对象的字符串。因此,它应该是object

"optvalue": {
          "value": {
            "name": "test1",
            "gender": "female"
          }
        }

thanks for your answers,i have resolved it using-- 感谢您的回答,我已使用-

angular.toJson and angular.fromJson

while send to server used 发送到服务器时使用

angular.toJson(stringOfJson)

and when got the response object the using 而当得到响应对象时使用

angular.fromJson(value)

and set to object field,it is working fine. 并设置为对象字段,它工作正常。

you need to change your code to this 您需要将代码更改为此

<div ng-repeat="item in list">
 {{item.optvalue.value.name}} 
</div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM