2013-02-28 78 views
2

從JSON數據三個字段,我需要使用Linq.js的Json數據選擇兩場了三個領域的選擇兩個領域進行使用Linq.js

需要的輸出應該是

[{ "A": -27, C: "country 1" } , { "A": 28 , C: "country 2"} ] 

使用 「linq.js」 從以下路徑:[https://raw.github.com/gist/1175460/fb7404d46cab20e31601740ab8b35d99a584f941/linq.js]

樣本數據

在的jsfiddle
var Data = [{ "A": -27, "B": -39, C: "country 1" }, { "A": 28, "B": 0 , C: "country 2"}] 

var filter = " x => x['A'], x['C'] "; 
var findItem = Enumerable.From(Data) 
.Select(filter) 
.ToArray(); 

console.log(findItem); 

代碼:http://jsfiddle.net/gLXNw/9/

回答

6

你 「拉姆達」 功能必須返回一個有效的Java對象。

您的查詢應該更多這樣的:

var query = Enumerable.From(data) 
    .Select("x => { A: x['A'], X: x['C'] }") // object initializer 
    .ToArray(); 
+0

和感謝但在.net linq我用卡片選擇字段。選擇(c => new {c.Type,c.Limit})。ToList(); – 2013-02-28 16:16:53

+0

我改變選擇子句如下cz我創建使用運行時間值選擇。 「x => {\」A「\:x ['A'],\」C「\:x ['C']}」 – 2013-02-28 16:24:02

6

您可以使用結果選擇的,而不是lambda函數(如果不用於政治原因:) lambda表達式)

var findItem = Enumerable.From(Data) 
.Select(function(x){ 
    return { 
     'A': x['A'], 
     'X': x['C'] 
    }; 
}).ToArray(); 
+0

如果屬性包含空格,例如「Hair Cut」不工作,節省了我的時間,謝謝 – 2015-12-04 13:21:51