在VS 2012中将C#类粘贴为JSON

dan*_*iel 5 c# plugins json visual-studio-2012

在VS2012中,可以通过上下文菜单-> paste special将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; }      
}
Run Code Online (Sandbox Code Playgroud)

那么我想在我的JavaScript客户端代码中使用与json相同的模型。当然,在生成的JSON中必须有伪数据。

var model = {
    id: 0,
    description: 'dummy',
    isDone: false
};
Run Code Online (Sandbox Code Playgroud)

我总是必须手动完成,这很糟糕。

据我了解,我需要这些“ JSON模型”以使用剔除或angularjs将javascript数据绑定到html视图。也有可能我不了解整个事情。

Suj*_*kil 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;

    }
Run Code Online (Sandbox Code Playgroud)

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