【问题标题】:Access json object which has array访问具有数组的 json 对象
【发布时间】:2013-06-06 02:13:08
【问题描述】:

我对 json 很陌生,我似乎无法访问它正确的变量。

例如,我正在尝试获取“用户名”,以便为 AngularJS 项目创建模拟。

$httpBackend.expectGET('user.json').
  respond(Users[ { Username: "bjarnipolo"}, { Username: "yolo"} ]);


{
  "Users":[
      {
      "UserId":1,
      "Username":"bjarnipolo",
      "Password":null,
      "FirstName":"Bjarni Póló",
      "LastName":"Súkkulaðisson",
      "Ssn":"2412813539",
      "Email":"bjarnip08@ru.is",
      "Phone":"6903066",
      "Roles":"Stjornandi",
      "JobTitle":"Scrum Master",
      "ImageUrl":"http://us.cdn4.123rf.com/168nwm/nruboc/nruboc0802/nruboc080200034/2557282-a-small-cute-dog-playing-basketball-over-a-black-background.jpg",
      "IsActive":true
      },
      {
      "UserId":2,
      "Username":"yolo",
      "Password":null,
      "FirstName":"Brynjólfur YOLO",
      "LastName":"Hermannsson",
      "Ssn":"0106752040",
      "Email":"Binni@example.com",
      "Phone":"8995555",
      "Roles":"Notandi",
      "JobTitle":"Team member",
      "ImageUrl":"http://us.cdn4.123rf.com/168nwm/nruboc/nruboc0802/nruboc080200034/2557282-a-small-cute-dog-playing-basketball-over-a-black-background.jpg",
      "IsActive":true
      }
  ]
}

【问题讨论】:

  • “f.x”是什么意思?你是如何努力实现你的目标的?请改进您的问题以获得更多有用的答案。
  • respond({ Users[0].Username :"bjarnipolo"} );给我错误:Uncaught SyntaxError: Unexpected token [
  • @ArniReynir 尝试创建一个新用户,然后 NewUser = Users[0];, NewUser.UserName = "dsddsd"; AND User[0] = NewUser.. 试试这个
  • { Users[0].Username :"bjarnipolo"} 是创建新对象的语法。而“Users[0].Username”是无效的属性名称

标签: javascript json angularjs mocking


【解决方案1】:

我想我找到了一个解决方案来得到你想要的。

您可以使用new Request.JSON。请求应如下所示:

new Request.JSON({
 url: '/echo/json/',
 data: {
    json: JSON.encode({
          "Users":[
              {
              "UserId":1,
              "Username":"bjarnipolo",
              "Password":null,
              "FirstName":"Bjarni Póló",
              "LastName":"Súkkulaðisson",
              "Ssn":"2412813539",
              "Email":"bjarnip08@ru.is",
              "Phone":"6903066",
              "Roles":"Stjornandi",
              "JobTitle":"Scrum Master",
              "ImageUrl":"http://us.cdn4.123rf.com/168nwm/nruboc/nruboc0802/nruboc080200034/2557282-a-small-cute-dog-playing-basketball-over-a-black-background.jpg",
              "IsActive":true
              },
              {
              "UserId":2,
              "Username":"yolo",
              "Password":null,
              "FirstName":"Brynjólfur YOLO",
              "LastName":"Hermannsson",
              "Ssn":"0106752040",
              "Email":"Binni@example.com",
              "Phone":"8995555",
              "Roles":"Notandi",
              "JobTitle":"Team member",
              "ImageUrl":"http://us.cdn4.123rf.com/168nwm/nruboc/nruboc0802/nruboc080200034/2557282-a-small-cute-dog-playing-basketball-over-a-black-background.jpg",
              "IsActive":true
              }
         ]
     }),
 },
 onSuccess: function(response) {
    var jsonObj = response;
    alert(jsonObj.Users[1].Username);

    jsonObj.Users[1].Username = "dsds";

    alert(jsonObj.Users[1].Username);
 }
}).send();

这里是jsFiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多