0

我在 MVC4 非 api 项目中使用Newtonsoft JSON.NET 4.5r7。

下面我将DataTables“mDataProp”的“id”重命名为DT_RowId,但也想更改数据,例如42在序列化期间变为“row_42”

sealed public class Species
{
    [JsonProperty("DT_RowId")]
    public long id { get; private set; } // Change me to row_{n}

    public int amu { get; private set; }

    public string chemicalFormula { get; private set; }
...
}

对于不熟悉该库的人来说,文档有点难以理解,并且缺少示例。

我可以为每个类添加一个“row_n”属性,但是将视图与模型耦合是邪恶的™</p>

问题是:如何使用 JSON.net 更改序列化数据以实现此结果?

4

1 回答 1

0

从操作而不是返回模型,您可以轻松地使用 linq 查询创建一个匿名对象并返回它。

public JsonNetResult TestAction()
{
     ...

     var query = species.Select(s => new // species is a collection
     {  
        DT_RowId = .. you can change data as you need from s.id,
        amu = s.amu,
        chemicalFormula = s.chemicalFormula 
        ...
     });

     return new JsonNetResult{ Data = query.ToList() };

 }
于 2012-06-22T17:13:07.763 回答