Json.NET序列化我的对象给了我错误的输出

时间:2011-09-14 07:37:13

标签: c# json serialization json.net jsonserializer

使用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"
   },

所以基本上,结构是正确的,因为它按预期创建了成员数组,但我错过了每个成员对象上的“member”:label。有没有办法制作这样的标签?某种类声明,还是什么?

我希望我的问题很明确,如果没有 - 请告诉我,我会尝试进一步解释。

提前多多感谢。

/博

1 个答案:

答案 0 :(得分:1)

听起来你只需要创建一个具有该名称属性的中间对象来获取你想要的JSON;但是,我考虑使用JSON.net最初渲染的JSON(因为它在结构上更好)。