Dart lang,操纵服务器返回客户端中的JSON数据

时间:2014-10-06 23:12:34

标签: dart

我想检查用户登录参数,如果接受参数,我希望服务器将用户的名称和角色发送回客户端,并保存在SeassonStorage中以供进一步使用。

我的服务器端代码是:

....
....   
  var users = <Map>[];
  var logged = <Map>[];   
....
....
 .then((_) {  
                  for (var user in users) 
                      if(_theData['userName']==user['Alias'] && _theData['password']==user['Password'])
                  {
                    userFound=true;;
                    logged.add({
                              "Alias":user['Alias'],
                              "Roles": user['Roles']
                            });                     
                  }    
                })
      .then((_) {
                if(userFound == true)
                  res.write(JSON.encode(logged));
                else
                  res.write('sorry, unknown loggin');
                res.close();  
      });

在客户端,我已经:

....
....
if(request.responseText != 'sorry, unknown loggen'){
    server_msg.innerHtml='Welcome';
    print(request.responseText);
    print(JSON.decode(request.responseText));
    var FonixLogin = JSON.decode(request.responseText);       
      print(FonixLogin['Alias']);
      print(FonixLogin['Roles']);
    Storage sessionStorage = window.sessionStorage;
      sessionStorage['FonixAlias'] = FonixLogin['Alias'];
      sessionStorage['FonixRoles'] = FonixLogin['Roles'];
....

我得到的输出是:

    [{"Alias":"Admin","Roles":"admin"}]
    [{Alias: Admin, Roles: admin}]
    Exception: Illegal argument(s): Alias login.dart:66login_Element.onData

为什么我在这里犯了错误,以致返回的数据无法正确保存在

1 个答案:

答案 0 :(得分:0)

FonixLoginList,您可以像Map一样访问它。

尝试print(FonixLogin[0]['Alias']);