[英]How can I convert javascript var obj = {}; to C#?
我有以下 javascript 代码:
var key = "Mykey" + NextNumber.toString();
var value = {"Name":"Tony","Width":"150","Height":"320"};
var valuejson = JSON.stringify(value);
var obj = {};
obj[key] = valuejson
我知道如何在 C# 中创建 valuejson,但我不知道如何创建类似 var obj = {}; 的东西。 在 C# 中。 我怎样才能在 C# 中做到这一点?
C# 中的 key 和 valuejson:
public class MyValue
{
public string Name { get; set; }
public string Width { get; set; }
public string Height { get; set; }
}
MyValue value = new MyValue();
value.Name = "Tony";
value.Width = "150";
value.Height = "320";
string jsonValue = JsonConvert.SerializeObject(value);
string key = "Mykey" + NextNumber.toString();
如果您正在寻找可以在运行时动态添加和删除成员的对象(如在 Javascript 中),那么ExpandoObject 类应该适合您的需要。
dynamic employee = new ExpandoObject();
employee.Name = "John Smith";
employee.Age = 33;
foreach (var property in (IDictionary<String, Object>)employee)
{
Console.WriteLine(property.Key + ": " + property.Value);
}
// This code example produces the following output:
// Name: John Smith
// Age: 33
您可以尝试使用与 javascript 中的{}
类似的动态对象......但是......你必须小心,例如:
public class test
{
public class MyValue
{
public string Name { get; set; }
public string Width { get; set; }
public string Height { get; set; }
}
public void testing()
{
MyValue value = new MyValue();
value.Name = "Tony";
value.Width = "150";
value.Height = "320";
dynamic jsonValue = new { keyA = value };
string height = jsonValue.keyA.Height;
}
}
EDI:
实际上,我更仔细地阅读了您的需求,字典也可以满足您的需求:
public class test
{
public class MyValue
{
public string Name { get; set; }
public string Width { get; set; }
public string Height { get; set; }
}
Dictionary<string, MyValue> dic = new Dictionary<string, MyValue>();
public void testing()
{
string key = "Mykey" + NextNumber.toString();
MyValue value = new MyValue();
value.Name = "Tony";
value.Width = "150";
value.Height = "320";
dic.Add(key, value);
}
}
由于您要求等效于var x = {}
我建议使用dynamic
但我看到您想要创建一个键并将该值与该键相关联。
要将 json 字符串转换为 C# 对象,您可以使用DeserializeObject
方法并传入要将此 json 转换为的 c# 对象的实例。 JsonConvert
库是 Newtonsoft.Json 库的一部分。
var converted = JsonConvert.DeserializeObject<myCSharpViewModel>(json);
您要求dynamic
ExpandoObject
。
例子:
dynamic obj = new ExpandoObject();
obj.banana = "CIAO";
obj.bidshmqwq = 11245;
obj.BRUFCJMWH = null;
实际上,这个Type
可以让你动态地声明对象的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.