gpt4 book ai didi

c# - 如何在 C# 中生成 JavaScript 对象字面量?

转载 作者:太空狗 更新时间:2023-10-30 01:08:12 24 4
gpt4 key购买 nike

我需要在 C# 代码中创建以下 JavaScript 对象文字,作为一个字符串,并且正在寻找有关如何最好地执行此操作的一些提示。

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" }
}
}

这定义了一个具有 model 属性的客户端对象,该属性反射(reflect)了我的 MVC4 View 模型中每一行的外观。我可以使用纯反射来生成字符串文字,但我更愿意以某种方式利用 .NET 中已经可用的 JSON 序列化服务。为此,我想我需要创建一个匿名对象,其属性与上述 JS 属性相对应。我怎么能这样做?

编辑:我需要遍历 View 模型类中的属性并生成一个 C# 对象,该对象将序列化为类似于上面的 View 模型类的 JavaScript“转换”。

最佳答案

我认为他可能会问的是将 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);

关于c# - 如何在 C# 中生成 JavaScript 对象字面量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10293227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com