【问题标题】:Select two fields out of three fields from Json data using Linq.js使用 Linq.js 从 Json 数据的三个字段中选择两个字段
【发布时间】:2013-02-28 08:07:23
【问题描述】:

我需要使用 Linq.jsJson 数据的三个字段中选择两个字段

需要的输出应该是

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

从以下路径使用“linq.js”:[https://raw.github.com/gist/1175460/fb7404d46cab20e31601740ab8b35d99a584f941/linq.js]

样本数据

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);

JsFiddle 的代码:http://jsfiddle.net/gLXNw/9/

【问题讨论】:

    标签: javascript underscore.js linq.js


    【解决方案1】:

    您的“lambda”函数必须返回一个有效的 java 对象。

    您的查询应该更像这样:

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

    【讨论】:

    • 谢谢,但在 .net linq 中,我曾经使用卡片选择字段。Select(c => new { c.Type, c.Limit }).ToList() ;
    • 我将 select 子句更改如下 cz 我正在使用运行时值创建选择。 "x => { \"A"\: x['A'], \"C"\: x['C'] }"
    【解决方案2】:

    您可以在结果选择器中使用函数而不是 lambda(如果使用 lambda 表达式不是出于政治原因:))

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

    【讨论】:

    • 如果属性包含空格,例如“Hair Cut”,x.Hair Cut 将不起作用,它可以工作,节省了我的时间,谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    相关资源
    最近更新 更多