2016-11-29 75 views
0

我的Ajax調用從C#返回一個字典。如何從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 

我需要通過所有作爲數組到另一個功能。

是否必須遍歷所有返回值並創建一個新的數組以傳遞給所需的函數,還是有更簡單的方法?

+0

@OlivierDeMeulder,但我知道* *的關鍵。關鍵是,我不在乎關鍵,因爲我只需要提取值 – MyDaftQuestions

回答

3

以下假設輸入是固定的,並且無法格式化,例如作爲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"]

+0

就我所知,沒有\ n。我更新了我的帖子,並會嘗試這個,但我很驚訝有一個換行符? – MyDaftQuestions

+1

那麼,你的問題中的輸入有換行符。請注意,我對C#詞典及其實現沒有任何瞭解。 – Timo

+0

我只能說對不起。它返回一個json對象。我會嘗試添加DEV工具的屏幕截圖 – MyDaftQuestions