2015-06-11 3 views
-2

как десериализации ниже ответ Rest в ответ JSON мой отдых ответ в форматеDeserialize RestResponse в JSON данные

{ 
"new_token":"fdffdsfdsfdsf", 
"expires_in":400, 
"login_type":"abc" 
} 

У меня есть класс POCO, как

public string NewToken { get; set; } 
public string ExpiresIn { get; set; } 
public string LoginType { get; set; } 

Как хранить отдых в классах POCO

+0

Возможный дубликат [Конвертировать JSON String To C# Object] (http://stackoverflow.com/questions/4611031/convert-json-string-to-c-sharp-object) – JasonWilczak

+0

Что вы пытались? Это должно быть легко с JSON.NET, существует много существующих ресурсов, описывающих, как это делать. –

ответ

0

Вам просто нужно десериализовать JSON в свой класс.

Предполагая, что ваш класс называется Foo, просто использовать JavaScriptSerializer объект:

Foo result = new JavaScriptSerializer().Deserialize<Foo>(json); 

Вам нужно будет добавить ссылку на System.Web.Extensions для того, чтобы получить доступ к JavaScriptSerializer.

EDIT

После дополнительного разъяснения относительно отображения исходного JSON имен свойств симпатичных имен .Net, и предполагается, что ваш класс называется POCO, я предлагаю использовать DataContractJsonSerializer следующим образом:

using System; 
using System.IO; 
using System.Runtime.Serialization; 
using System.Runtime.Serialization.Json; 
using System.Text; 

[DataContract()] 
class POCO 
{ 
    [DataMember(Name = "new_token")] 
    public string NewToken { get; set; } 

    [DataMember(Name = "expires_in")] 
    public string ExpiresIn { get; set; } 

    [DataMember(Name = "login_type")] 
    public string LoginType { get; set; } 
} 

class SomeClass 
{ 
    void DoSomething(string json) 
    { 
     MemoryStream reader; 
     POCO output; 
     DataContractJsonSerializer serializer; 

     reader = new MemoryStream(Encoding.Unicode.GetBytes(json)); 
     serializer = new DataContractJsonSerializer(typeof(POCO)); 
     output = serializer.ReadObject(reader) as POCO; 
    } 
} 
+0

Спасибо martin, но мне нужно в C# – madhu

+0

Это C#, попробуйте код, и вы увидите. –

+0

Я попытался добавить ссылку для 'System.Web.Extensions', но это не удается. мой проект нацелен на «.Net4.5' – madhu

Смежные вопросы