[英]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.