2011-09-14 4 views
0

JSON.NET을 사용하여 .NET 객체를 JSON으로 직렬화하는 데 문제가 있습니다.Json.NET 내 객체 직렬화가 잘못된 출력을 내게합니다.

{"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; } 
} 

과 : 나는 직렬화되고 싶어 출력은 다음과 같이해야합니다

을 호출 할 때 위의 .NET 구조가 나에게주는 어떤
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; } 
} 

:

string json = JsonConvert.SerializeObject(members, Newtonsoft.Json.Formatting.Indented); 

'members'는 회원 목록입니다. 이다 :

{ 
    "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을 얻기 위해 그 이름의 속성 중간 개체를 만들 필요가 같은

/보

+2

이 경우 JSON.NET으로 작성된 JSON이 우수합니다. 그 객체가 직렬화 된 하나의 속성을 가진 객체를 만들어서 무엇을 살까? – Tejs

+0

@Tejs +1, 나는 당신과 동의하지만 OP는 외부 API의 기대에 부합 하는가? – user937146

+0

당신은 절대적으로 맞습니다 :) 나는 모든 속성 (다른 객체가 됨)을 보유하고있는 멤버를 나타내는 또 다른 클래스를 만들어야했습니다. 정말 고마워요! 답변을 만드십니까? 그럼 기꺼이 받아 들일거야. 다시 한 번 감사드립니다! – bomortensen

답변

1

소리가 난다; 그러나 JSON.net을 원래 JSON으로 렌더링하는 것을 고려해 볼 수 있습니다 (구조적으로 더 좋음).