मैं एक सेवा है जो निम्न स्वरूप में JSON आउटपुट पर ठोकर खाई के साथ Json.NET कस्टम JsonConverter:डेटा प्रकार
{
"Author": "me",
"Version": "1.0.0",
"data.Type1": {
"Children": [
{
"data.Type1": {
"Children": [
{
"data.Type2": {
"name": "John",
"surname": "Doe"
}
}
]
}
},
{
"data.Type3": {
"dob": "1990-01-01"
}
}
]
}
}
डेटा प्रकार के नाम संपत्ति के नाम के रूप में संरक्षित कर रहे हैं और उनके मान वास्तविक वस्तुओं रहे हैं। वे सभी data.
उपसर्ग के साथ शुरू करते हैं।
{ // Root
"Author": "me",
"Version": "1.0.0",
"Children": [ // Type1
{
"Children": [ // Type1
{ // Type2
"Name": "John",
"Surname": "Doe"
}
]
},
{ // Type3
"DoB": "1990-01-01"
}
]
}
निम्नलिखित वर्गों के साथ
:
मैं बाद में प्राप्त करना चाहते हैं क्या कुछ इस तरह है
class Type1 {
ICollection<object> Children { get; set; }
}
class Type2 {
public string Name { get; set; }
public string Surname { get; set; }
}
class Type3 {
public DateTime DoB { get; set; }
}
class Root
{
public string Author { get; set; }
public string Version { get; set; }
public Type1 Children { get; set; }
}
प्रश्न
मैं जोड़ा में इस deserialize कैसे सी # कक्षाएं, डेटा प्रकारों को ध्यान में रखते हुए और पेड़ से उन्हें हटा रही हैं?
मैंने कस्टम JsonConverter
के साथ प्रयास किया है, लेकिन कनवर्टर को गतिशील रूप से चुनने के तरीके से संघर्ष कर रहा हूं, क्योंकि सबसे आसान तरीका संपत्ति पर एक विशेषता डालना होगा, लेकिन यह समर्थित नहीं है।
एक छोटा सा उदाहरण बहुत अच्छा होगा।
आपके उत्तर के लिए धन्यवाद।मैंने कोशिश की, लेकिन समस्या यह है कि पूरे स्तर को हटा दिया जाना चाहिए और प्रतिस्थापित किया जाना चाहिए, क्योंकि वे केवल उस प्रकार के रूप में कार्य करते हैं जो कि वे किस प्रकार का प्रतिनिधित्व करते हैं, जहां जेसनप्रोपर्टी केवल क्लास नाम और जेसन संपत्ति के नाम के बीच मैप करना है। –