【问题标题】:How to create a list from a C# Dictionary return object [duplicate]如何从 C# 字典返回对象创建列表 [重复]
【发布时间】:2016-11-29 18:57:24
【问题描述】:

我的 Ajax 调用从 C# 返回一个字典。

 return = pp.Shares
        .Select(c => new
        {
            c.Url,
            c.Name
        }).ToDictionary(d => d.Url, d => d.Name);

上面返回一个JSON对象

这意味着我在 JavaScript 中的返回看起来像:

key1: value
key2: value
key3: value2

我需要将所有作为数组传递给另一个函数。

我是否必须遍历所有返回值并创建一个新数组以将值传递给所需的函数,还是有更简单的方法?

【问题讨论】:

  • @OlivierDeMeulder,但我知道关键。关键是,我不关心密钥,因为我只需要提取值

标签: javascript


【解决方案1】:

以下假设输入是固定的并且无法格式化,例如作为 JSON。


首先将您的输入分成几行,即\n\r\n,具体取决于输入。然后再次将行拆分为键和值并选择值:

var input = 'key1: value\nkey2: value\nkey3: value2';

var lines = input.split('\n');
var values = lines.map(function(line) {
  return line.split(': ')[1];
});

console.log(values); // ["value", "value", "value2"]

编辑:由于您的输入已经以 JSON 格式提供,因此更加容易。 JSON.parse() 字符串并提取对象值:

var input = '{"key1":"value","key2":"value","key3":"value2"}';

var parsed = JSON.parse(input);

var values = Object.keys(parsed).map(function(key) {
  return parsed[key];
});

console.log(values); // ["value", "value", "value2"]

【讨论】:

  • 据我所知,没有\n。我更新了我的帖子并将尝试这个,但我很惊讶有一个换行符?
  • 好吧,您问题中的输入有换行符。请注意,我对 C# 字典及其实现一无所知。
  • 我只能说对不起。它返回一个 json 对象。我将尝试添加 DEV 工具的屏幕截图
  • 如果它已经是一个对象,你可以跳过解析步骤。如果收到 JSON 字符串,则需要先将其解析为 JavaScript 对象。请注意,没有 JSON 对象 这样的东西。要么它仍然是一个字符串,要么它是一个 JavaScript 对象。
  • 感谢您的额外解释。我已经投了赞成票,所以不能再给了:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 2021-05-20
  • 2015-02-24
  • 1970-01-01
  • 2020-01-23
  • 1970-01-01
  • 2019-07-01
相关资源
最近更新 更多