2016-06-04 10 views
1

У меня есть этот вызовполучить C# объект из JSON

request.Content = new StringContent(json, Encoding.UTF8, "application/json"); 

и получить обратно объект JSON как

{“Email”:"[email protected]",”Name”:”Stefan”} 

Как получить значение формирования строки обратно в объект? Пользовательский объект - user.email и user.name.

С уважением Стефан

+0

Что вы пытаетесь сделать, это называется "десериализации". В какой момент вы хотите снова десериализовать эту строку JSON и почему? – CodeCaster

+0

Я хочу привести каждую часть строки JSON в нужное текстовое поле на веб-сайте. Эта строка JSON является результатом вызова Azure AD – Stefan

ответ

1

Есть много способов для достижения этой цели:

  1. вы можете использовать JSON.NET для работы с JSON:

    JObject jObject = JObject.Parse(json); 
    string Name = (string)jObject["Name"]; 
    string Email = (string)jObject["Email"]; 
    
  2. вы можете использовать JavascriptSerilizer

    JavaScriptSerializer json_serializer = new JavaScriptSerializer(); 
    User user = (User)json_serializer.DeserializeObject(json); 
    
  3. или вы можете использовать DataContractJsonSerilizer как это:

    public static T Deserialize<T>(string json) 
    { 
        T obj = Activator.CreateInstance<T>(); 
        MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(json)); 
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); 
        obj = (T)serializer.ReadObject(ms); 
        ms.Close(); 
        return obj; 
    } 
    
Смежные вопросы