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

时间:2013-04-19 10:03:17

标签: c# json plugins visual-studio-2012

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

是否有解决方案可以反过来做到这一点?将c#类粘贴为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模型"使用knockout或angularjs将javascript数据绑定到html视图。也有可能我不了解整件事情。

1 个答案:

答案 0 :(得分:2)

您可以采取各种方法。如果您计划将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文件,则可以使用相同的概念生成表示。您可以在此处找到{{3} }