Sadece parametreler hakkında herhangi bir şey bilmeden JSON'dan anonim bir yazı oluşturmaya çalışıyorum ve bunları tamamen yorumlayın (muhtemelen ipuçlarıyla). yani bu değer int, string veya date gibi "görünüyor".JSON.Net kullanarak anonim bir türe nasıl seri hale getirilir?
Şu ana kadar bildiğim tek yol, önceden bildiğiniz bir anonim tür oluşturmaktır. Aşağıdaki .DeserializeAnonymousType (...) yöntemine bakın.
Bundan daha iyisini yapan var mı? Teşekkürler.
var jsonString = "{\"user_id\": 1, \"user_type\": \"moderator\", \"name\": \"Fred\"}";
JToken root = JObject.Parse(jsonString);
var anonTemplate = new{user_id=0, user_type="", name="" };
var a = JsonConvert.DeserializeAnonymousType(root.ToString(), anonTemplate);
var b = JsonConvert.DeserializeObject<Object>(root.ToString()); // actually turns into a JsonObject which is something differet.
Güncelleme Ben dynamicduck indirilen ve biraz onunla oynuyorum. Bu garip dinamik “sarıcı” fikri Brian'ın ihtiyaç duyduğum şekillerde (seri hale getirilebilir, vb.) Düşünülecek mi?
http://weblogs.asp.net/britchie/archive/2010/08/05/json-net-dynamic-extensions.aspx
http://weblogs.asp.net/britchie/archive/2010/08/03/dynamicduck-duck-typing-in-a-dynamic-world.aspx
Sana dynamic' nesnesine 'mümkün serisi kaldırılmaya olması gerektiğini varsayalım ve daha sonra açıkça gerekli özelliklere – sll
erişmek nasıl bunu varsa veya beklenen hangi parametrelere bilmiyorsanız bu nesneyi tüketmek niyetinde yapmak var? – KallDrexx
@sll: bir örnek var mı? Dinamik tiplere karşı değil. Onları arada kullanıyorum. Bu durumda, sıradaki sorum, dinamikten anon türüne nasıl dönüştürebileceğinizi olurdu. Her iki yoldan da memnunum çünkü performans bir sorun değil, ancak bu durumda bir anon türüne ihtiyacım var (mevcut kütüphaneler). – sgtz