删除NewtonSoft JsonSerialization信息

时间:2014-08-20 07:49:43

标签: c# asp.net-web-api json.net

当我尝试在ASP.NET WebApi中使用Object数据类型进行序列化时,会包含不需要的属性。

public class SomeViewModel
{
    public SomeViewModel(Object item, SomeItemType itemType)
    {
        Item = item;
        ItemType = itemType;
    }

    public Object Item { get; set; }
    public SomeItemType ItemType { get; set; }
}

使用上述模型,JSON结果如下。我指出不需要的属性

{
"$id": "20",
"Result": { // here the item comes.
  "$id": "21",
  "Id": 1005227636,
  "UserName": null,
  "Locale": 0,
  "Grade": 0
},
"Id": 10, // unwanted properties.
"Exception": null,
"Status": 5,
"IsCanceled": false,
"IsCompleted": true,
"CreationOptions": 0,
"AsyncState": null,
"IsFaulted": false
}

如果来自NewtonSoft.Json或ASP.NET管道,我不知道不需要的属性,但似乎序列化信息与结果一起插入。

如何省略不需要的属性?当我序列化强定义的类时它不会产生。

1 个答案:

答案 0 :(得分:0)

哦,我的坏。

Select(async o => item.ThisIsNotAsyncMethod());

linq中的执行代码具有async关键字,这不是异步任务。删除异步而不是它的工作原理。 (有点小问题。我认为async关键字只是await的一个合成糖而不影响编译结果。也许我误解了)