【问题标题】:get key/value pair from json response object in angular 2 typescript从角度2打字稿中的json响应对象获取键/值对
【发布时间】:2017-10-23 09:43:57
【问题描述】:
 return this._http.post(apiUrl, model)
            .map((res: Response) => {
                console.log(res.json());
                let user = res.json();
               //let user = Object.keys(res.json());   <-- only gives keys not values

                if (user) {
                    localStorage.setItem('currentUser', JSON.stringify(user));
            }
        })

这是我的发帖方式...

这是控制台输出...

Object {Id: 101, UserName: "appatel", FirstName: "aarsh", LastName: "patel", Password: "aarsh"…}
Email: "aarshpatel@gmail.com"
FirstName: "aarsh"
Gender: "Male  "
Id: 101
LastName: "patel"
Password: "aarsh"
UserName: "appatel"

我想在本地存储中设置用户名.. 我该怎么做??

【问题讨论】:

  • 你不应该在地图中做。
  • 为什么??任何原因

标签: json angular angular2-services key-value


【解决方案1】:

设置数据:

let user = res.json();
if (user) {
    localStorage.setItem('currentUser', JSON.stringify(user));
}

获取数据:

if(localStorage.getItem('currentUser')) {
    let user_data = JSON.parse(localStorage.getItem('currentUser'));
    console.log(user_data);
    console.log(user_data.UserName);
}

【讨论】:

  • 在这里您将 localstorage 项目设置为整个“用户”数据,而让您使用“用户名”我无法理解
  • 有 2 个 console.log ,第一个将控制台记录整个用户对象,第二个将只是用户名
  • @Aarsh,抱歉打错了,请再检查一遍
  • 是的,它的工作原理。但是为什么我不能直接设置用户名?为什么在获取数据然后设置之后?我想直接在localstorage中设置用户名
  • 您也可以这样做,只需使用 localStorage.setItem('username', user['UserName']));然后是 localStorage.getItem('username')。
【解决方案2】:

只需访问属性 UserName,

if (user) {
     localStorage.setItem('currentUser', JSON.stringify(user.UserName));
}

【讨论】:

  • 怎么说?
  • localStorage 存储 {currentUser: "undefined"}
  • 打印 console.log(JSON.stringify(user)) 并在此处发布
  • {"Id":101,"UserName":"appatel","FirstName":"aarsh","LastName":"patel","Password":"aarsh","Gender" :"男","电子邮件":"aarshpatel@gmail.com"}
猜你喜欢
  • 2022-01-12
  • 2018-08-31
  • 2016-06-25
  • 2018-12-12
  • 1970-01-01
  • 2019-07-08
  • 2023-02-06
  • 1970-01-01
  • 2019-07-04
相关资源
最近更新 更多