Json'u bu şekilde seri hale getirmem gerekiyor (bu DICOM'da tanımlandığı gibidir - uluslararası bir standarttır, bu yüzden biçimi değiştiremiyorum!)Json.Net'i kullanarak veri özelliklerine bağlı olarak Json.Net kullanarak serileştirmek için bir nesne türünü nasıl seçebilirim?
{
....
"00080060": {
"Value": [
"US"
],
"vr": "CS"
},
"00080070": {
"Value": [
"ACME Products"
],
"vr": "LO"
},
"00080090": {
"Value": [
{
"AlphabeticName": "Better^Make^U.^MD"
}
],
"vr": "PN"
},
"00081110": {
"Value": [
{
"00080008": {
"Value": [
"XX_0",
"OIU",
null,
"PPP"
],
"vr": "CS"
}
},
{},
{
"00080008": {
"Value": [
"XX_2",
"OIU",
null,
"PPP"
],
"vr": "CS"
}
}
],
"vr": "SQ"
},
uzun listedeki her bir özelliği (!)) bir ad (yukarıdaki örnekte 0008XXXX sahiptir ve alt özellikleri "vr" ve Değerine sahiptir. Çoğu durumda, Değer basitçe bir dizi nesnedir (string veya sayı) ve bu iyi, ancak 2 özel durum için (PN ve SQ yukarıdaki gibi) özel işleme ihtiyaç duyar ve SQ durumunda aslında bir dizi tekrar üst düzey nesne (iç içe yinelemeli sonsuza kadar iç içe olabilir ...)
Neye ihtiyacım var, "vr" değerini denetlemek ve json.net 'e kullanması gereken seriyi vermek için basit bir yöntemdir. İlişkili "Değer" için - bunu yapmak için basit bir yol var mı? Tabii ki, vr, değerden önce veya sonra gelebilir (uzaktan uygulamaya bağlı olarak), işleri daha da karmaşıklaştırabilir ...
json.net'in ContractResolver ve JsonConverter mekanizmalarına baktım ama ContractResolver bana vermek istemiyor seçime izin vermek için okunan verilere erişim, ve JsonConverter türetilmiş sınıflar bana zaten benim için json.net dong (aksi takdirde çok iyi!) çoğu yeniden uygulamak zorunda bırakacak gibi görünüyor :-(
burada bazı bariz ve basit bir çözüm eksik muyum?
'JObject' ne ihtiyaç vardır: İşte
bir demo:Yani, burada size JSON serisini nasıl olduğunu hep birlikte kravat için. Ne yazık ki, ayrıştırma ile bunun için yeterli zamanım yok. –