【发布时间】:2011-09-14 07:37:12
【问题描述】:
我在使用 JSON.NET 将我的 .NET 对象序列化为 JSON 时遇到了一点问题。我要序列化的输出必须如下所示:
{"members":[
{"member":
{
"id":"4282",
"status":"1931",
"aktiv":"1",
"firmanavn":"firmname1",
"firmaUrl":"www.firmurl.dk",
"firmaUrlAlternativ":"",
"firmaSidstKontrolleretDato":"30-08-2010",
"firmaGodkendelsesDato":"07-03-2002"
}
},
{"member":
{
"id":"4283",
"status":"1931",
"aktiv":"1",
"firmanavn":"firmname2",
"firmaUrl":"www.firmurl.dk",
"firmaUrlAlternativ":"",
"firmaSidstKontrolleretDato":"30-08-2010",
"firmaGodkendelsesDato":"18-12-2000"
}
},
...... long list of members omitted
我现在的 .NET 结构(仍在尝试获得正确的输出)是这样的:
public class Members
{
public List<Member> MemberList { get; set; }
}
和:
public class Member
{
[JsonProperty(PropertyName = "Id")]
public string Id { get; set; }
[JsonProperty(PropertyName = "Status")]
public string Status { get; set; }
[JsonProperty(PropertyName = "Aktiv")]
public string Aktiv { get; set; }
[JsonProperty(PropertyName = "Firmanavn")]
public string Firmanavn { get; set; }
[JsonProperty(PropertyName = "FirmaUrl")]
public string FirmaUrl { get; set; }
[JsonProperty(PropertyName = "AltFirmaUrl")]
public string AlternativFirmaUrl { get; set; }
[JsonProperty(PropertyName = "FirmaSidstKontrolleretDato")]
public string FirmaSidstKontrolleretDato { get; set; }
[JsonProperty(PropertyName = "FirmaGodkendelsesDato")]
public string FirmaGodkendelsesDato { get; set; }
}
上面的.NET结构在调用时给了我什么:
string json = JsonConvert.SerializeObject(members, Newtonsoft.Json.Formatting.Indented);
其中“成员”是成员列表。这是:
{
"Members": [
{
"Id": "1062",
"Status": "1933",
"Aktiv": "1",
"Firmanavn": "firmname",
"FirmaUrl": "http://www.firmurl.dk",
"AltFirmaUrl": "http://www.altfirmurl.dk",
"FirmaSidstKontrolleretDato": "13-09-2011",
"FirmaGodkendelsesDato": "13-09-2511"
},
{
"Id": "1060",
"Status": "1933",
"Aktiv": "1",
"Firmanavn": "firmname2",
"FirmaUrl": "http://www.firmurl.dk",
"AltFirmaUrl": "http://www.altfirmurldk",
"FirmaSidstKontrolleretDato": "13-09-2011",
"FirmaGodkendelsesDato": "13-09-2511"
},
所以基本上,结构是正确的,因为它按预期创建了成员数组,但我缺少每个成员对象上的“成员”:标签。有没有办法制作这样的标签?某种类声明,还是什么?
我希望我的问题很清楚,如果没有,请告诉我,我会尝试进一步解释。
非常感谢。
/博
【问题讨论】:
-
JSON.NET 创建的 JSON 在这种情况下更胜一筹。通过创建具有一个已序列化该对象的属性的对象可以买到什么?
-
@Tejs +1,我同意你的观点,但也许 OP 受外部 API 期望的约束?
-
你是绝对正确的 :) 我必须创建另一个类来代表拥有所有属性的成员(作为另一个对象)非常感谢!你创造一个答案吗?那我就欣然接受了。再次感谢!
标签: c# json serialization json.net jsonserializer