10 NİSAN 2013, ÇARŞAMBA
.Net NewtonSoft farklı bir özellik adı için Serisini göster Json
Harici bir partiden alınan aşağıdaki JSON dize var.
{
"team":[
{
"v1":"",
"attributes":{
"eighty_min_score":"",
"home_or_away":"home",
"score":"22",
"team_id":"500"
}
},
{
"v1":"",
"attributes":{
"eighty_min_score":"",
"home_or_away":"away",
"score":"30",
"team_id":"600"
}
}
]
}
Eşleme derslerimi
public class Attributes
{
public string eighty_min_score { get; set; }
public string home_or_away { get; set; }
public string score { get; set; }
public string team_id { get; set; }
}
public class Team
{
public string v1 { get; set; }
public Attributes attributes { get; set; }
}
public class RootObject
{
public List<Team> team { get; set; }
}
Soru bu ben gibi "Öznitelik sınıfı" ve "öznitelikler alan adı" Takıma sınıf yerine, benim olmak istediğim adında "TeamScore" ve aynı zamanda kaldırmak "_" alan adları ve özel isimler verin.
JsonConvert.DeserializeObject<RootObject>(jsonText);
Bir şekilde değiştirebilirsiniz "" sınıf "TeamScore" eğer dava adı (Takım Sınıf öznitelikleri) değiştirirsem, ama serisini olmaz düzgün ve beni boş veriyor. Öznitelik Bunu nasıl bitireceğim?
Şimdiden teşekkürler.
CEVAP
10 NİSAN 2013, ÇARŞAMBA
Json.NET kod olmalı Json özelliğin adı belirtmek için izin veren bir JsonPropertyAttribute vardır:
public class TeamScore
{
[JsonProperty("eighty_min_score")]
public string EightyMinScore { get; set; }
[JsonProperty("home_or_away")]
public string HomeOrAway { get; set; }
[JsonProperty("score ")]
public string Score { get; set; }
[JsonProperty("team_id")]
public string TeamId { get; set; }
}
public class Team
{
public string v1 { get; set; }
[JsonProperty("attributes")]
public TeamScore TeamScores { get; set; }
}
public class RootObject
{
public List<Team> Team { get; set; }
}
Belgeleri:Serialization Attributes
Bunu Paylaş:
kaldırmada için JSON .net NewtonSoft (...
Nasıl bir NSDictionary içine bir JSON ...
Bir Göster için bir JSON dize dönüştür...
Seri hale getirilirken jQuery JSON içi...
Nasıl Krom XML yerine JSON dönmek için...