जब किसी ऑब्जेक्ट को Dictionary
(JsonConvert.DeserializeObject<IDictionary<string,object>>(json)
) पर deserializing, नेस्टेड ऑब्जेक्ट्स JObject
एस के लिए deserialized हैं। क्या नेस्टेड ऑब्जेक्ट्स को Dictionary
एस में deserialized करने के लिए मजबूर करना संभव है?जेसन.NET: नेस्टेड शब्दकोशों को Deserializing
22
A
उत्तर
32
मैं एक तरह से एक CustomCreationConverter
कार्यान्वयन प्रदान करके Dictionary<string,object>
करने के लिए सभी नेस्टेड वस्तुओं कन्वर्ट करने के लिए मिला:
class MyConverter : CustomCreationConverter<IDictionary<string, object>>
{
public override IDictionary<string, object> Create(Type objectType)
{
return new Dictionary<string, object>();
}
public override bool CanConvert(Type objectType)
{
// in addition to handling IDictionary<string, object>
// we want to handle the deserialization of dict value
// which is of type object
return objectType == typeof(object) || base.CanConvert(objectType);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (reader.TokenType == JsonToken.StartObject
|| reader.TokenType == JsonToken.Null)
return base.ReadJson(reader, objectType, existingValue, serializer);
// if the next token is not an object
// then fall back on standard deserializer (strings, numbers etc.)
return serializer.Deserialize(reader);
}
}
class Program
{
static void Main(string[] args)
{
var json = File.ReadAllText(@"c:\test.json");
var obj = JsonConvert.DeserializeObject<IDictionary<string, object>>(
json, new JsonConverter[] {new MyConverter()});
}
}
-1
वैकल्पिक/अपडेट:
मैं एक deserialize करने की जरूरत String
एस के शब्दकोशों का शब्दकोश और वर्तमान जेसन.नेट (5.0) के साथ मुझे कस्टम कनवर्टर बनाना नहीं था, मैं जुस टी (VB.Net में) का इस्तेमाल किया:
JsonConvert.DeserializeObject(Of IDictionary(Of String, IDictionary(Of String, String)))(jsonString)
या, सी # में:
JsonConvert.DeserializeObject<IDictionary<String, IDictionary<String, String>>(jsonString);
संबंधित मुद्दे
- 1. Json.NET: deserializing नेस्टेड Json
- 2. जेसन.net
- 3. नेस्टेड शब्दकोशों की सूची छँटाई अजगर
- 4. नेस्टेड कुंजीपटल द्वारा घोंसला वाले शब्दकोशों को मर्ज करें?
- 5. नेस्टेड शब्दकोशों से फ़ील्ड को हटाने का सुरुचिपूर्ण तरीका
- 6. Deserializing
- 7. जेसन.नेट: धारावाहिक/deserializing सरणी
- 8. शब्दकोशों
- 9. न्यूटॉन्सॉफ्ट जेसन.Net जेसन सीरियलाइज़र
- 10. एक्सपैथ नेस्टेड पायथन शब्दकोशों के लिए क्वेरी की तरह
- 11. शब्दकोशों को जोड़ना
- 12. क्रोम बुकमार्क Deserializing सी #
- 13. deserializing JSON
- 14. deserializing DataContractJsonSerializer
- 15. जेएसओएन deserializing - मूल तत्व को अनदेखा कैसे करें?
- 16. वेबएपी जेसन.NET कस्टम डेट हैंडलिंग
- 17. शब्दकोशों एक दूसरे को काटना
- 18. जेसन.NET केस-असंवेदनशील संपत्ति Deserialization
- 19. xmlns = '' की उम्मीद नहीं की गई थी जब नेस्टेड कक्षाओं को deserializing
- 20. RestSharp JSON ऑब्जेक्ट सूची को deserializing नहीं, हमेशा शून्य
- 21. JMSSerializer deserializing संग्रह
- 22. पायथन: serializing/deserializing datetime.time
- 23. एक्सएमएल deserializing केवल xml
- 24. deserializing JSON उपवर्गों
- 25. निहित तत्वों को संयोजित करके दो जेसन.NET सरणी मर्ज करें
- 26. इंटरनेट एक्सप्लोरर, जेसन.Net जावास्क्रिप्ट दिनांक और मिलीसेकंड
- 27. शब्दकोशों वाले सरणी को कैसे क्रमबद्ध करें?
- 28. जेसन.Net: JsonSerializer- कस्टम नामकरण के लिए विशेषता
- 29. शब्दकोशों ValueOrNull/ValueorDefault
- 30. शब्दकोशों का प्रचार
इस का समर्थन नहीं करता पुनरावर्ती/अज्ञात json संरचनाओं ठीक से परिवर्तित किया जा रहा। –
यह उत्तर नहीं देता है, क्योंकि यह विशेष रूप से घोंसले के एक निश्चित स्तर को संदर्भित करता है – Javier