0

MVC4 非 API プロジェクトでNewtonsoft JSON.NET 4.5r7を使用しています。

以下では、"id" を DataTables "mDataProp" の 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 に答える