C# 从模型数组透视json数据
我托管了一个web api服务,它返回过去12个月我的模型“myModel”的快照。我在客户机上收到的json数组是由12个“MyDel”对象组成的简单数组 如果myModel具有属性“foo”和“bar”,javascript中是否有一种有效的方法来透视数组以生成属性数组的集合,例如: 我想改变一下 进入 我愿意在服务器端实现,如果这样更有效的话。我的api服务是一个.NET4.5WebAPI 再说一遍。我的问题是,有没有一种超高效的方法可以在javascript中实现这些结果?如果没有,c#中是否有一个?有人能提供一些简单的示例代码让我继续吗 非常感谢你的帮助。谢谢 编辑:工作代码 尽管我在这个问题上被否决了,但我想我会提供一个javascript的工作示例来实现这一点。它也很快。请注意,每个历史记录都必须有一个按分组记录的键C# 从模型数组透视json数据,c#,javascript,arrays,asp.net-web-api,pivot,C#,Javascript,Arrays,Asp.net Web Api,Pivot,我托管了一个web api服务,它返回过去12个月我的模型“myModel”的快照。我在客户机上收到的json数组是由12个“MyDel”对象组成的简单数组 如果myModel具有属性“foo”和“bar”,javascript中是否有一种有效的方法来透视数组以生成属性数组的集合,例如: 我想改变一下 进入 我愿意在服务器端实现,如果这样更有效的话。我的api服务是一个.NET4.5WebAPI 再说一遍。我的问题是,有没有一种超高效的方法可以在javascript中实现这些结果?如果没有,c#
_pivot = function(history) {
var i, pivoted, prop, rec;
pivoted = {};
if (history !== null) {
i = 0;
while (i < history.length) {
rec = history[i];
pivoted[rec.Key] = pivoted[rec.Key] || {};
for (prop in rec) {
pivoted[rec.Key][prop] = pivoted[rec.Key][prop] || [];
if (!pivoted[rec.Key][prop].date) {
pivoted[rec.Key][prop].push({
value: rec[prop]
});
}
}
i++;
}
return pivoted;
}
return null;
};
\u pivot=函数(历史){
变量i、枢轴、支柱、rec;
枢轴={};
如果(历史!==null){
i=0;
而(i
好吧,就超高效而言,我认为除非您更改您的下属模型,否则您将不得不迭代您的模型,无论是服务器端还是客户端,并将每个属性分配给不同的数组
var tempFoo = newArray(); tempBar = newArray();
for (var i = 0; i < myModel.length; i++){
tempFoo.push(myModel[i].foo);
tempBar.push(myModel[i].bar);
}
var tempFoo=newArray();tempBar=newArray();
对于(var i=0;i
此外,如果您在服务器端代码中对其进行了排序,或者如果它只是从您要从中提取的任何数据库中自动排序,您将看到速度的提高
希望这有帮助,仅供参考,示例是Javascript
V/R
_pivot = function(history) {
var i, pivoted, prop, rec;
pivoted = {};
if (history !== null) {
i = 0;
while (i < history.length) {
rec = history[i];
pivoted[rec.Key] = pivoted[rec.Key] || {};
for (prop in rec) {
pivoted[rec.Key][prop] = pivoted[rec.Key][prop] || [];
if (!pivoted[rec.Key][prop].date) {
pivoted[rec.Key][prop].push({
value: rec[prop]
});
}
}
i++;
}
return pivoted;
}
return null;
};
var tempFoo = newArray(); tempBar = newArray();
for (var i = 0; i < myModel.length; i++){
tempFoo.push(myModel[i].foo);
tempBar.push(myModel[i].bar);
}