【问题标题】:How can i obtain this data structure in NodeJS?如何在 NodeJS 中获取此数据结构?
【发布时间】:2016-06-08 09:31:49
【问题描述】:

我想获得以下结构,并能够修改相应键的用户数组,并以 json 响应发送。

var data = ["A": [user1,user6,user9], "B": [user2], "E": [user3], "S": [user10], "Z": [user7], "J": [user8]]

datajsonObject 内发送到客户端 (Swift) 时应采用此格式:[String : [User]]

这是我迄今为止尝试过的,

var dict = [];
var jsonObject = {};
User.find({}, function(err, users) {
    if (err) {
        return res.status(500).send(err);
    } else {
        users.forEach(function(user) {
            dict[user.name.substring(0, 1)] = []
            dict[user.name.substring(0, 1)].push(user)
        });

    }
   jsonObject["key"] = dict
   return res.status(200).json(jsonObject);

});

虽然console.log(jsonObject)打印正确,但json响应是:

{
  "key": []
}

在客户端(Swift)上,我正在尝试做这样的事情。但它给出了错误。

.responseJSON(completionHandler: { response -> Void in
           if let jsonObj = response.result.value {
                 if let result = jsonObj["key"] as? [String: [User]]
                 {
                   var dict : [String: [User]] = result
                           print(dict)
                 } 
                                                 }
})

有什么帮助吗?

【问题讨论】:

  • data 一个对象` var data = {"A": [user1,user6,user9], "B": [user2], "E": [user3], "S" :[user10],“Z”:[user7],“J”:[user8]}`
  • 在ios端就是这种格式; [字符串:[用户]]

标签: json node.js list object dictionary


【解决方案1】:

我尝试了这种方法。似乎足以满足您对数据的需求。

var _ = require('lodash');

User.find({}, function (err, users) {
  if (err) {
    return res.status(500).send(err);
  }

  var data = {};
  _.each(users, (user) => {
    var key = user.name.substring(0, 1);
    var value = data[key];
    if (_.isUndefined(value)) {
        value = [];
    }
    value.push(user);
    data[key] = value;
  });

  return res.status(200).send({
    key: data
  });
});

我用var users = [{name: 'Andrew'}, {name: 'Blake'}, {name: Cathy'}, {name: 'Anderson'}, {name: 'Bresnan'}];测试过

【讨论】:

  • 你好,你的代码给了我这个:{"key": { "S": [{"name":"Sridhar"}]} 但我需要这样的东西 {"key": [ "S": [{"name":"Sridhar"}] ] },你介意检查更新的问题吗?我包括了我的 Swift 代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-27
  • 2018-12-28
相关资源
最近更新 更多