2013-05-08 1 views
0

나는 아래의 Json을 TwitterTiles 목록으로 역 직렬화하려고합니다 (아래 참조).Json을 객체 목록에 역 직렬화

JSON :

{ 
    "twitterTile": 
    [ 
     { 
      "hashtag": "#genoa", 
      "isPositive": true, 
      "dateSearched": "08/05/2013" 
     } 
    ] 
} 

클래스 정의 :

public class TwitterTile 
{ 
    public string hashtag { get; set; } 
    public bool isPositive { get; set; } 
    public string dateSearched { get; set; } 
} 

public class RootObject 
{ 
    public List<TwitterTile> twitterTile { get; set; } 
} 

문제는 내가 성공적으로 JSON을 역 직렬화 할 수없는 것입니다. 나는 (아래) 몇 가지 방법을 시도하고 그것은 아무데도 안돼. 이러한 모든 메소드는 결국 null 객체를 리턴합니다. 나는 이것이 왜 일어나고 있는지를 놓치고있다. 누구든지 아이디어가 있습니까?

var des = (RootObject)Newtonsoft.Json.JsonConvert.DeserializeObject(data, typeof(RootObject)); 
RootObject topics = JsonConvert.DeserializeObject<RootObject>(json); 

답변

0

코드가 괜찮습니다. 나는 그것을 실행했고 Json.NET v5.4.11을 사용하여 그것을 잘 비 직렬화했다. 내가 사용한 정확한 프로그램은 다음과 같습니다. 문제는 deserialization이 아닐 수도 있지만 JSON을 검색하는 데 사용하는 방법은 무엇이든 작동하지 않는다고 생각합니다. 유효한 JSON이 반환되는지 확인 했습니까? 그렇다면 코드를 deserialize하기 전에 null이 될 수있는 코드가 있습니까? 디버거에서 코드를 단계별로 실행하면 어떻게됩니까?

class Program 
{ 
    static void Main(string[] args) 
    { 
     string json = 
     @"{ 
      ""twitterTile"": 
      [ 
       { 
        ""hashtag"": ""#genoa"", 
        ""isPositive"": true, 
        ""dateSearched"": ""08/05/2013"" 
       } 
      ] 
     }"; 

     RootObject result = JsonConvert.DeserializeObject<RootObject>(json); 

     foreach(TwitterTile tile in result.twitterTile) 
     { 
      Console.WriteLine("hashtag: " + tile.hashtag); 
      Console.WriteLine("isPositive: " + tile.isPositive); 
      Console.WriteLine("dateSearched: " + tile.dateSearched); 
     } 
    } 

    public class TwitterTile 
    { 
     public string hashtag { get; set; } 
     public bool isPositive { get; set; } 
     public string dateSearched { get; set; } 
    } 

    public class RootObject 
    { 
     public List<TwitterTile> twitterTile { get; set; } 
    } 
} 

는 출력 : 실제로 잘 작동

hashtag: #genoa 
isPositive: True 
dateSearched: 08/05/2013 
+0

, 나는 변경하는 데 필요한 유일한 것은 twitterTile 내 RootObjects 목록 ID이었고, 헤이 프레스토 일했다. 기묘한. 도와 주셔서 감사합니다 ! –

+0

문제 없습니다. 다행이라고 생각합니다. –