2013-12-14 5 views
0

Когда я пытаюсь десериализации JSON с помощью инструкции:десериализации JSON в C#

Root outObject = JsonConvert.DeserializeObject<Root>(temp); 

Это не работает!

Я заверил JSON и действуют (с http://jsonlint.com/)

Содержимое «Темпа» выглядит следующим образом (я проверил во время выполнения)

{"root": 
     {"ajaxResponse": { 
         "credits": {"availableCredits": 998, 
         "total": "1000", 
         "used":"2" 
         }, 
         "success": 1 
         } 
     } 
} 

Моей классовая структура выглядит следующим образом:

public class Root 
{ 
     public AjaxResponse ajaxResponse {get; September;} 
} 


public class Credits 
{ 
    public int availableCredits {get; September;} 
    public string Total {get; September;} 
    public string used {get; September;} 
} 

public class AjaxResponse 
{ 
    public credits Credits {get; September;} 
    public int success {get; September;} 
} 

спасибо.

+8

Что такое '{получить; Сентябрь;} '? Попробуйте отправить код, который не является мусором. –

+1

Кроме того, «кредиты Кредиты» должны быть «Кредитами кредитов». –

ответ

2

Позвольте Json2csharp действительно работать для вас. Он генерирует структуру класса C# для данного json-содержимого.

Сформирован классовая структура такова:

public class Credits 
{ 
    public int availableCredits { get; set; } 
    public string total { get; set; } 
    public string used { get; set; } 
} 

public class AjaxResponse 
{ 
    public Credits credits { get; set; } 
    public int success { get; set; } 
} 

public class Root 
{ 
    public AjaxResponse ajaxResponse { get; set; } 
} 

public class RootObject 
{ 
    public Root root { get; set; } 
} 

Deserialize логика должна быть:

RootObject outObject = JsonConvert.DeserializeObject<RootObject>(temp); 
+0

Спасибо! Оно работает! Я забыл класс RootObject! –

+0

Отлично. Могу ли я узнать причину, почему вы не принимаете ответ, если он работает на вас? –

+0

Извините !. спасибо –

0

Добавить это:

public class Container 
{ 
    public Root root {get;set;} 
} 

И использовать так:

var outObject = JsonConvert.DeserializeObject<Container>(temp); 

Полный пример:

void Main() 
{ 
var temp = @" 
{""root"": 
    {""ajaxResponse"": { 
        ""credits"": {""availableCredits"": 998, 
        ""total"": ""1000"", 
        ""used"":""2"" 
         }, 
        ""success"": 1 
         } 
     } 
} 
"; 
    var outObject = JsonConvert.DeserializeObject<Root>(temp); 
    outObject.Dump(); 
} 

public class Container 
{ 
    public Root root {get;set;} 
} 

public class Root 
{ 
    public AjaxResponse ajaxResponse {get; set;} 
} 


public class Credits 
{ 
    public int availableCredits {get; set;} 
    public string total {get; set;} 
    public string used {get; set;} 
} 

public class AjaxResponse 
{ 
    public Credits credits {get; set;} 
    public int success {get; set;} 
} 
Смежные вопросы