2013-12-09 5 views
-3

C# 개체로 구문 분석하려는 JSON 스트림이 있습니다. 이 스트림은 내가 변경할 수있는 것이 아니므로 처리해야하지만 올바르게 보이지 않습니다.이 JSON을 C# 개체로 구문 분석하려면 어떻게해야합니까?

어쨌든 이것을 분석하는 방법을 아는 사람. JSON.NET? 당신의 JSON은 C#에서 변수 이름으로 사용할 수 없습니다 "1" 같은 숫자 속성 이름을 포함하기 때문에

[ 
{ 
    "items": { 
     "4": { 
      "IdNummer": "4", 
      "Title": "Bewaak je hart deel 3", 
      "Server": "cdn11.streampartner.nl", 
      "PublishPoint": "plompd", 
      "Filename": "Bewaak je hart deel 3.mp3", 
      "activated": "1", 
      "Date": "Dec 21:12", 
      "Filesize": "28950111", 
      "Thumbnail": "", 
      "Comments": "", 
      "UserToken": "plom04a18847262fe15", 
      "ItemTokenNumber": "0661ce1e4fe256d1", 
      "Category": "", 
      "StartDate": "0000-00-00", 
      "EndDate": "0000-00-00" 
     }, 
     "5": { 
      "IdNummer": "5", 
      "Title": "Bewaak je hart deel 2", 
      "Server": "cdn11.streampartner.nl", 
      "PublishPoint": "plompd", 
      "Filename": "Bewaak je hart deel 2.mp3", 
      "activated": "1", 
      "Date": "Dec 22:37", 
      "Filesize": "41461227", 
      "Thumbnail": "", 
      "Comments": "", 
      "UserToken": "plom04a18847262fe15", 
      "ItemTokenNumber": "6b8eddbf612653e9", 
      "Category": "", 
      "StartDate": "0000-00-00", 
      "EndDate": "0000-00-00" 
     } 
    } 
} 

]

+2

http://json2csharp.com/ –

+0

@CodeMonkey 그것은 내가 두려워 그 너무 복잡하지만 기본 항목에 대한 DTO들도 제공하지 않습니다 :( – JohnD

+0

의견을 주셔서 감사합니다. 예, json2csharp와 함께 JSON.NET을 시도했지만 JohnD와 마찬가지로 JSON (json2csharp의 경우)이 유효하지 않습니다. 따라서 LB가 제안한 것처럼 속일 수 있습니다. –

답변

2

, 당신은 Dictionary<string,SomeObject> 트릭을 사용할 수 있습니다. 그래서 Json.Net,

var obj = JsonConvert.DeserializeObject<List<ItemContainer>>(json); 
를 사용
public class ItemContainer 
{ 
    public Dictionary<string,Item> Items { get; set; } 
} 
public class Item 
{ 
    public string IdNummer { get; set; } 
    public string Title { get; set; } 
    public string Server { get; set; } 
    public string PublishPoint { get; set; } 
    public string Filename { get; set; } 
    public string activated { get; set; } 
    public string Date { get; set; } 
    public string Filesize { get; set; } 
    public string Thumbnail { get; set; } 
    public string Comments { get; set; } 
    public string UserToken { get; set; } 
    public string ItemTokenNumber { get; set; } 
    public string Category { get; set; } 
    public string StartDate { get; set; } 
    public string EndDate { get; set; } 
} 
+0

동일한 문제 I 방금 다른 라이브러리. – Casey

+0

"나는 NewtonSoft.Json.dll을 사용한다."잘 닫는다. – JohnD

+0

@Casey 나는 같은 라이브러리를 사용했다. ('Json.Net = NewtonSoft .Json.dll') :) 그러나 "* 훌륭한 작품"* 만 대답하는 것은 아닙니다. –

관련 문제