[英]C# Serialize JSON object within JSON objects
我有這些實體:
public class Product
{
public string Code {get;set;}
public string Name {get;set;}
public ICollection<Pack> Packs {get;set;}
}
public class Pack
{
public string Colour {get;set;}
public string Moq {get;set;}
}
我的json對象:
var products = [{
code: 1243123,
name: "Gel",
packs: [{
color: "blue",
moq: 10
}]
}];
請注意命名差異,即顏色的大小寫和美國拼寫。 JavaScriptConvert.DeserializeObject()
會正確反序列化嗎?
還是我必須另辟?徑?
如果我只有一個可以直接訪問這些名稱的對象,那么那里的值將是巨大的!
如果使用JSON.NET之類的東西 ,則可以使用屬性來控制序列化,例如:
public class Pack
{
[JsonProperty("color")]
public string Colour {get;set;}
[JsonProperty("moq")]
public string Moq {get;set;}
}
另外,鑒於您的預期輸出,您的Product
類應如下所示:
public class Product
{
[JsonProperty("code")]
public long Code {get;set;}
[JsonProperty("name")]
public string Name {get;set;}
[JsonProperty("packs")]
public Pack[] Packs {get;set;}
}
注意代碼和包類型。
如果改用DataContractJsonSerializer
,則可以將屬性放入屬性,在生成/解析的JSON中為它們賦予不同的名稱:
[DataContract]
public class Pack
{
[DataMember(Name = "color")]
public string Colour {get;set;}
[DataMember(Name = "moq")]
public string Moq {get;set;}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.