यह मेरा JSON है

[{"id":23,"name":"Video Clips"},{"id":15,"name":"Deleted Scenes"},{"id":9,"name":"Music Albums"},{"id":7,"name":"Trailers"},{"id":18,"name":"Short  Films"},{"id":21,"name":"Movie Clips"},{"id":1,"name":"Movies "},{"id":4,"name":"Plays"},{"id":22,"name":"Scenes"},{"id":2,"name":"TV  Show"},{"id":5,"name":"Kids"},{"id":16,"name":"Interviews"},{"id":11,"name":"Film Songs"},{"id":14,"name":"Making of Movie"}] 

मुझे इसे deserialize करना है मुझे यह कैसे करना चाहिए? कृपया सहायता कीजिए

2
Mahendra 26 अगस्त 2011, 15:56
5
देखें JSON.NET
 – 
marc_s
26 अगस्त 2011, 15:58
इस लिंक को देखें stackoverflow.com /प्रश्न/7203770/…
 – 
Bobby
26 अगस्त 2011, 15:58
सी शार्प में इस जेसन को डिसेरिएलाइज कैसे करें?
 – 
Mahendra
26 अगस्त 2011, 16:04
[{"id":23,"name":"Video Clips"},{"id":15,"name":"Deleted Scenes"},{"id":9,"name":"Music Album" },{"id":7,"name":"Trailers"},{"id":18,"name":"Short Films"},{"id":21,"name":"Movie Clips" },{"id":1,"name":"Movies"},{"id":4,"name":"Plays"},{"id":22,"name":"Scenes"}, {"id":2,"name":"TV Show"},{"id":5,"name":"Kids"},{"id":16,"name":"Interview"},{ "id":11,"name":"Film Songs"},{"id":14,"name":"Making of Movie"}]
 – 
Mahendra
26 अगस्त 2011, 16:07
 – 
Fernando Correia
26 अगस्त 2011, 16:10

2 जवाब

सबसे बढ़िया उत्तर

आपके पास मौजूद JSON वीडियो की तरह दिखने वाली वस्तुओं की एक सरणी का प्रतिनिधित्व करता है, इसलिए पहले आपको प्रत्येक वीडियो को स्टोर करने के लिए एक वर्ग को परिभाषित करने की आवश्यकता होगी:

public class Video
{
    public int ID { get; set; }
    public string Name { get; set; }
}

ऐसा करने से आप कई JSON पुस्तकालयों में से एक का उपयोग कर सकते हैं जो या तो निर्मित या तीसरे पक्ष में है। इस उदाहरण के लिए मैंने JSON.NET का उपयोग किया है। यहां दस्तावेज़ीकरण का लिंक दिया गया है।

इसके बाद आपको JsonConvert वर्ग की DeserializeObject स्थिर जेनेरिक विधि का उपयोग करने की आवश्यकता होगी, जैसे List<Video> प्रकार निर्दिष्ट करना ताकि यह जान सके कि JSON को डी-सीरियलाइज़ किया जाना वीडियो ऑब्जेक्ट का एक संग्रह है:

using Newtonsoft.Json;

...

string json = "[{\"id\":23,\"name\":\"Video Clips\"},{\"id\":15,\"name\":\"Deleted Scenes\"},{\"id\":9,\"name\":\"Music Albums\"},{\"id\":7,\"name\":\"Trailers\"},{\"id\":18,\"name\":\"Short  Films\"},{\"id\":21,\"name\":\"Movie Clips\"},{\"id\":1,\"name\":\"Movies \"},{\"id\":4,\"name\":\"Plays\"},{\"id\":22,\"name\":\"Scenes\"},{\"id\":2,\"name\":\"TV  Show\"},{\"id\":5,\"name\":\"Kids\"},{\"id\":16,\"name\":\"Interviews\"},{\"id\":11,\"name\":\"Film Songs\"},{\"id\":14,\"name\":\"Making of Movie\"}]";

List<Video> videos = JsonConvert.DeserializeObject<List<Video>>(json);

इसके साथ आपके पास काम करने के लिए वीडियो ऑब्जेक्ट का एक संग्रह है।

आशा है कि यह आपकी मदद करता है।

2
jdavies 10 फरवरी 2012, 14:45

आप System.Web.Extensions dll से JavaScriptSerializer का उपयोग करके जोंस को डिसेरिएलाइज़ कर सकते हैं जो इसमें पाया जा सकता है:

C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Web.Extensions.dll

परियोजना में डीएलएल का संदर्भ जोड़ने के बाद जोड़ें:

using System.Web.Script.Serialization;

और आपको लक्ष्य फ्रेमवर्क को एक गैर-ग्राहक प्रोफ़ाइल पर सेट करने की भी आवश्यकता होगी, उदाहरण के लिए:

.NET फ्रेमवर्क 4

फिर इस तरह कोड का उपयोग करें जो कि json को डिसेरिएलाइज़ करें:

var json = @"[{""id"":23,""name"":""Video Clips""},{""id"":15,""name"":""Deleted Scenes""},{""id"":9,""name"":""Music Albums""},{""id"":7,""name"":""Trailers""},{""id"":18,""name"":""Short  Films""},{""id"":21,""name"":""Movie Clips""},{""id"":1,""name"":""Movies ""},{""id"":4,""name"":""Plays""},{""id"":22,""name"":""Scenes""},{""id"":2,""name"":""TV  Show""},{""id"":5,""name"":""Kids""},{""id"":16,""name"":""Interviews""},{""id"":11,""name"":""Film Songs""},{""id"":14,""name"":""Making of Movie""}]";
var jsonSerializer = new JavaScriptSerializer();
var deserializedList = jsonSerializer.Deserialize<List<JsonType>>(json);
1
Răzvan Flavius Panda 26 अगस्त 2011, 16:38