7

在 VS2012 中,可以通过上下文菜单 -> 特殊粘贴将 JSON 粘贴为 c# 类。

有没有办法反过来做呢?将ac#类粘贴为JSON?

我认为许多开发人员首先使用 EF DBContext 编写服务器代码,然后使用客户端 javascript 代码编写代码。手动编写 json 总是很复杂。

一个例子:

// a model class 
public class SampleTodoItem
{
    public int Id { get; set; }            
    public string Description { get; set; }
    public bool IsDone { get; set; }      
}

然后我想在我的 javascript 客户端代码中使用与 json 相同的模型。当然,生成的 JSON 中必须有虚拟数据。

var model = {
    id: 0,
    description: 'dummy',
    isDone: false
};

我总是不得不手动做这很糟糕的事情。

据我了解,我需要这些“JSON 模型”将 javascript 数据绑定到带有敲除或 angularjs 的 html 视图。也可能我不明白整个事情..

4

1 回答 1

3

您可以采取多种方法。如果您打算将 c# 类转换为 json 表示,最简单的方法是使用 Javascript 序列化程序或 JSON.Net 之类的东西来序列化数据表示。这是一个将给定 IEnumerable 转换为其 JSON 表示的示例

 public static string ToJSONString<T>(this IEnumerable<T> items)
   {
        var jsonString =  JsonConvert.SerializeObject(items, Formatting.Indented, new JsonSerializerSettings
            {
                ContractResolver = new LowerCaseContractResolver(),
                NullValueHandling = NullValueHandling.Ignore
            });

        jsonString = jsonString.Replace("\r\n", string.Empty);

        return jsonString;

    }

另一种方法(这是用于淘汰视图模型,使用 T4 模板来生成它。如果您打算使用模型生成 JavaScript 文件,则可以使用相同的概念来生成表示。您可以在此处找到它http://www.codeproject .com/Articles/578827/Generate-Knockout-Viewmodels-using-T4-templates

于 2013-04-19T13:02:09.620 回答