Не получает значения при разборе Json String в C # - PullRequest
0 голосов
/ 11 мая 2011

Я получаю строку json "jasonContent" из nyTimes. Когда я пишу следующий код, я могу получить значения итогов и смещений, но меня интересуют результаты, но я ничего не получаю за результаты. Строка, которую я получаю, выглядит примерно так

{

  "offset": "0",

   "results": [

    {
      "body": " news goes here",

      "byline": "By SANA SIWOLOP",
      "date": "20110511",
      "title": "SQUARE FEET; Chelsea Piers, a Manhattan Sports Center, Expands Close to Home",
      "url": "http:\/\/www.nytimes.com\/2011\/05\/11\/realestate\/commercial\/chelsea-piers-a-manhattan-sports-center-expands-close-to-home.html"
    },
    {
      "body": "news 2 goes here",
      "byline": "By ROB HUGHES",
      "date": "20110511",
      "title": "ON SOCCER; Racial Politics Rear Their Head in French Soccer",
      "url": "http:\/\/www.nytimes.com\/2011\/05\/11\/sports\/soccer\/11iht-SOCCER11.html"
    },
    {
      "body": "news3 does here",
      "byline": "By RICHARD SANDOMIR",
      "date": "20110511",
      "title": "Gus Johnson Joins Fox Sports",
      "url": "http:\/\/www.nytimes.com\/2011\/05\/11\/sports\/gus-johnson-joins-fox-sports.html"
    },],"tokens": [
 "sports" ],
  "total": 152539
}

Для разбора этой строки я пишу следующий код

 public class nytimesnews
{
    public string offset { get; set; }
    public resultobject news2;
    public string total { get; set; }
}

public class resultobject
{
    public results[] news;
}

public class results
{
    public string body { get; set; }
    public string byline { get; set; }
    public string date { get; set; }
    public string title { get; set; }
    public string url { get; set; }
}


nytimesnews parse = JsonConvert.DeserializeObject<nytimesnews>(jasonContent);

1 Ответ

1 голос
/ 11 мая 2011

Проблема решена.(Я использовал Json.NET).Я заметил, что переменные класса nytimesnews должны быть названы в соответствии со строкой json.Я внес следующие изменения в код, и он работал отлично.

 public class nytimesnews
 {
       // name of these variables are just like the  data tags in json string
       public string offset { get; set; }      
       public result[] results;
       public string total { get; set; }
 }

 public class results
 {
       public string body { get; set; }
       public string byline { get; set; }
       public string date { get; set; }
       public string title { get; set; }
       public string url { get; set; }
 }

Тогда в моем основном классе я просто использовал следующий код

 // jasonContent is the jason string
 nytimesnews parse = JsonConvert.DeserializeObject<nytimesnews>(jasonContent);
 jasonContent = parse.results[1].body;
...