我有一个包含电子邮件地址和状态数据成员的类对象列表.我试图将这些转换为json,确保在数组上有"操作"字样.
这是我的班级:
class MyClass
{
public string email {get; set; }
public string status { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我当前的代码(不是构建):
List<MyClass> data = new List<MyClass>();
data = MagicallyGetData();
string json = new {
operations = new {
JsonConvert.SerializeObject(data.Select(s => new {
email_address = s.email,
status = s.status
}))
}
};
Run Code Online (Sandbox Code Playgroud)
这是我想要获得的JSON:
{
"operations": [
{
"email_address": "email1@email.com",
"status": "good2go"
},
{
"email_address": "email2@email.com",
"status": "good2go"
},...
]
}
Run Code Online (Sandbox Code Playgroud)
EDIT1 我应该提一下,我得到的数据来自数据库.我从数据库中反序列化JSON并以几种不同的方式使用数据,因此我无法更改类的成员名称.
我一直试图让这个工作没有运气.我一直在引用这些资源寻求帮助:http:
//swimlane.github.io/ngx-datatable/#filter
https://github.com/swimlane/ngx-datatable/blob/master/demo/basic/filter. component.ts
基本上我只是想让我的过滤器应用于多个列,而不需要实现代码来处理每一列.(有些数据表有20多列!)
示例代码:
//HTML
<input type='text' placeholder='Filter' (keyup)='updateFilter($event.target.value)' />
<ngx-datatable
class="material"
columnMode="force"
[columns]="gridProperties.FilteredColumns"
[footerHeight]="50"
[loadingIndicator]="gridLoadingIndicator"
[rows]="filteredList"
[scrollbarH]="false"
[scrollbarV]="true"
[selected]="selectedItem"
[selectionType]="'single'"
style="min-height:400px;">
</ngx-datatable>
//TYPESCRIPT
public items: Item[];
updateFilter(filterValue) {
const lowerValue = filterValue.toLowerCase();
this.filteredList = this.items.filter(item => item.name.toLowerCase().indexOf(lowerValue) !== -1 || !lowerValue);
}
Run Code Online (Sandbox Code Playgroud)
在这里,我显然只是处理我的items数组的'name'属性的过滤.这很好用,但就像我提到的那样,如果网格包含很多列,我想要一种方法来处理所有这些.任何帮助或提示表示赞赏.
我一直试图在我的代码中查看函数执行需要多长时间才能看到我可以优化的地方.现在我使用一个辅助类,它本质上是一个带有消息来检查这些的秒表.这样做的目的是我应该能够在帮助器中包装我想要的任何方法调用,并且我将获得它的持续时间.
public class StopwatcherData
{
public long Time { get; set; }
public string Message { get; set; }
public StopwatcherData(long time, string message)
{
Time = time;
Message = message;
}
}
public class Stopwatcher
{
public delegate void CompletedCallBack(string result);
public static List<StopwatcherData> Data { get; set; }
private static Stopwatch stopwatch { get; set;}
public Stopwatcher()
{
Data = new List<StopwatcherData>();
stopwatch = new Stopwatch();
stopwatch.Start();
}
public static void Click(string message)
{
Data.Add(new StopwatcherData(stopwatch.ElapsedMilliseconds, message));
} …Run Code Online (Sandbox Code Playgroud)