我需要以字符串的形式在JavaScript代码中创建下面的C#对象文本,并寻找一些关于如何最好地做到这一点的技巧。
model: {
id: "Id",
fields: {
Surname: { type: "string", validation: { required: true } },
FirstName: { type: "string", validation: { required: true } },
PrivateEmail: { type: "string", validation: { required: true } },
DefaultPhone: { type: "string" },
CompanyName: { type: "string" },
CreateDate: { type: "date" },
LastLoginDate: { type: "date" },
IsLockedOut: { type: "boolean" }
}
}
这定义了一个具有模型属性的客户端对象,该属性反映了我的MVC4视图模型中的每一行的样子。我可以使用简单的反射来生成字符串文本,但我更愿意使用.NET中已经可用的JSON序列化服务。为此,我认为我需要创建一个匿名对象,其属性与上面的JS属性相对应。我怎么能这么做?
编辑:,我需要循环视图模型类中的属性,并生成一个C#对象,该对象将序列化为视图模型类的JavaScript‘转换’,类似于上面的一个。
发布于 2012-04-24 00:00:49
我认为他可能要求的是将C#对象转换为JSON字符串。
试试这个:
http://msdn.microsoft.com/en-us/library/system.json.jsonobject%28v=vs.95%29.aspx
或
http://james.newtonking.com/pages/json-net.aspx
编辑(关于如何使用的示例):
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
string json = JsonConvert.SerializeObject(product);
//{
// "Name": "Apple",
// "Expiry": new Date(1230422400000),
// "Price": 3.99,
// "Sizes": [
// "Small",
// "Medium",
// "Large"
// ]
//}
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
编辑:
这是@yyamil的评论
还可以使用匿名对象,以防只为了序列化json对象而创建新类:
var notificationPayload = new
{
notification = new
{
title = "Title",
body = "body"
}
};
string json = JsonConvert.SerializeObject(notificationPayload);
https://stackoverflow.com/questions/10293227
复制相似问题