2016-03-27 9 views
2

Yeni bir uygulama için Auth0 kullanıyorum ASP.NET Core 1.0 kullanarak yazıyorum. Şimdiye kadar harika çalışıyor, ama bir nedenden dolayı beni güldüren bir şeye çarpmıştım.JSON, özel bir hak talebinde (Auth0'dan) nasıl seri hale getirilir?

Kullanıcı oturum açtığında, Auth0 hak talepleri uygulamayıma iletir. Auth0, kullanıcıya özel veriler ekleme yeteneğine sahiptir, JSON formatında saklanır ve taleplerin bir listesi olarak gelir. Ben bir şeye iddia değerine dönüştürmek nasıl Sorum, beraber

Type "app_metadata" 
Value "\"IsPublisherFor\":[\"p56\",\"p124\",\"p258\"]" 
ValueType "JSON" 

çalışabilir edilir

: iddiaların

biri bu gibi bir şey olacaktır? Örneğin, IsPublisherFor.Contains("p56"); gibi bir şeyi yapma yeteneği NewtonSoft.Json.JsonConvert.DeserializeObject(value) değerini geçirmeyi denedim, ancak bir istisna atar. JsonReaderException: Additional text encountered after finished reading JSON content

Bunu dönüştürmenin herhangi bir yolu temiz mi?

cevap

2

JSON string'inizi kıvırcık parantez içinde sarmanız gerekebilir. Geçerli JSON'a sahip olmak için genellikle tek bir üst düzey diziye veya nesneye ihtiyacınız vardır. NewtonSoft bilmem ama JavaScriptSerializer kullanarak, bu işleri yapmayın:

var json = "{\"IsPublisherFor\":[\"p56\",\"p124\",\"p258\"]}"; 
var serializer = new JavaScriptSerializer(); 
stuff obj = serializer.Deserialize<stuff>(json); 

verileri almak için tanımlanmış şu sınıfıyla:

public class stuff 
{ 
    public string[] IsPublisherFor { get; set; } 
} 
+0

bile NewtonSoft ile harika çalışıyor. Teşekkürler! – Chaddeus

İlgili konular