<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Re: Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63206.aspx</link><pubDate>Fri, 11 Feb 2011 17:28:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63206</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63206.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63206</wfw:commentRss><description>&lt;p&gt;Εδώ έκανες τη μετάβαση από 1.1 σε 2.0, που όντως είχε ασυμβατότητες, το .NET 4 δεν θα είναι πρόβλημα. Τα περί νομιμότητας δεν τα κατάλαβα, αν έχετε partnership ή MSDN έχετε και VS 2010. Εξάλλου, το μόνο που έχεις να κάνεις είναι να .... ανοίξεις το solution στο VS 2010 και να αλλάξεις το version του framework&lt;/p&gt;</description></item><item><title>Απ: Re: Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63204.aspx</link><pubDate>Fri, 11 Feb 2011 16:52:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63204</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63204.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63204</wfw:commentRss><description>Ομολογώ ότι ακόμα δεν το κοίταξα το 2010. Παρ'όλα αυτά, και πέρα από πιθανά θέματα νομιμότητας, το solution έχει μέσα web services, 5-6 project σε c# και ένα τεράστιο κακογραμμένο project σε VB το οποίο μεταλλασσόταν ανά τα χρόνια (ξεκίνησε από την έκδοση .ΝΕΤ 1).&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Λες να το δοκιμάσω; Μετά σκέφτομαι ότι πρέπει να γίνουν και τα σχετικά updates (framework 4, updater για το πρόγραμμα έχω φτιάξει εγώ) και στους clients...&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Και το ερώτημα είναι εάν αξίζει ή είναι κάτι που, δεδομένης της δομής του solution, θα ήταν καλό να γίνει σε επόμενη έκδοση (εάν υπάρξει).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ πάντως για το πολύτιμο feedback.&lt;/div&gt;</description></item><item><title>Απ: Re: Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63200.aspx</link><pubDate>Fri, 11 Feb 2011 07:54:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63200</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63200.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63200</wfw:commentRss><description>&lt;p&gt;Πρέπει όλα τα DLL να τρέχουν στο ίδιο version. Αλλά γιατί δεν δοκιμάζεις απλά να κάνεις recompile όλο το solution? Κάτι μου λέει ότι δεν θα έχεις σοβαρά προβλήματα, πέρα από το να βάλεις τα σωστά references αν γκρινιάξει το Visual Studio.&lt;/p&gt;</description></item><item><title>Απ: Re: Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63199.aspx</link><pubDate>Fri, 11 Feb 2011 07:49:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63199</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63199.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63199</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Κοίτα, δεν αποφάσισε ξαφνικά το .NET 3.5 να πάψει να δουλεύει. Αφού το είπες κι εσύ ο ίδιος, άλλαξε το API του Facebook. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Rephrase: Το γεγονός ότι ακόμα εγώ χρησιμοποιώ 3.5&amp;nbsp;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt; Δυστυχώς δεν είναι δική μου απόφαση ...&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Θα μπορούσα άραγε να φτιάξω ένα DLL σε 4 και να το κολλήσω μετά στο solution μου; Χμμμ... κάτι τέτοιο βλέπω να συμβαίνει.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Μη φτάσω σε σημείο να κάνω κάνα δικό μου wrapper στο τέλος!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αλλά και το parsing των JSON μου φαίνεται αρκετά εύκολο από την άλλη. Για απλά αντικείμενα τουλάχιστον.&lt;/div&gt;</description></item><item><title>Απ: Re: Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63198.aspx</link><pubDate>Fri, 11 Feb 2011 07:21:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63198</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63198.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63198</wfw:commentRss><description>Κοίτα, δεν αποφάσισε ξαφνικά το .NET 3.5 να πάψει να δουλεύει. Αφού το είπες κι εσύ ο ίδιος, άλλαξε το API του Facebook. Όσον αφορά το .NET 4.0, γιατί δεν δοκιμάζεις απλά να αλλάξεις την έκδοση του Framework στο project σου? Δεν είναι δα και τόσο φοβερές οι διαφορές. Το πιο πιθανό είναι ότι με ένα recompile θα καθαρίσεις</description></item><item><title>Απ: Re: Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63185.aspx</link><pubDate>Fri, 11 Feb 2011 03:07:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63185</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63185.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63185</wfw:commentRss><description>Βασίλη ευχαριστώ, το έχω υπ'όψιν μου το JSON.NET. Είναι όντως εργαλείο της προκοπής!&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Τελικά (μετά από ένα μπανάκι) φτάνω στο συμπέρασμα ότι εάν καθίσω και τα φτιάξω με το χέρι είναι δυο μέρες δουλειά. Δεν τα χρειάζομαι όλα, χρειάζομαι βασικά πράγματα. Απλά δεν θα φτιάξω αντικείμενα κομπλέ σαν αυτά που επιστρέφει το Graph, θα τα κάνω πιο μινιμαλιστικά, αυτά που μας χρειάζονται, και από δω παν wrappers, sdks κλπ...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Φαίνεται πάντως ότι η πηγή του κακού (τελικά) είναι το 3.5...&lt;/div&gt;</description></item><item><title>Re: Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63184.aspx</link><pubDate>Fri, 11 Feb 2011 01:46:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63184</guid><dc:creator>vlinakis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63184.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63184</wfw:commentRss><description>&lt;P&gt;Καλησπέρα,&lt;BR&gt;&lt;BR&gt;Ίσως σε σώσει αυτός ο φοβερός κυριούλης &lt;A href="http://james.newtonking.com/projects/json-net.aspx"&gt;http://james.newtonking.com/projects/json-net.aspx&lt;/A&gt;&amp;nbsp;(James Newton-King).&lt;BR&gt;Δεν προσφέρει ακριβώς αυτό που θες αλλά μπορεί να σε βοηθήσει να κάνεις conversions από τα οποία να φτάσεις να κάνεις αυτό που θες. Σε κάθε περίπτωση προσφέρει μια πολύ χρήσιμη βιβλιοθήκη όταν δουλεύεις με JSON και .Net.&lt;BR&gt;&lt;BR&gt;Βασίλης&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63183.aspx</link><pubDate>Fri, 11 Feb 2011 01:40:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63183</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63183.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63183</wfw:commentRss><description>Αν χρησιμοποιούσα την έκδοση 4 (.NET, C#) δεν θα είχα πρόβλημα.&amp;nbsp;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Βασικά η πηγή είναι το Graph API του FB. Έχω βάλει το ERP μας να κάνει ποστ κλπ σε σελίδες πελατών. Το θέμα είναι ότι το καημένο το παλιό REST API, ή μάλλον καλύτερα, ο Wrapper που κυκλοφορούσε βγάζει κάτι timeout, άλλες μέθοδοι δεν δουλεύουν σωστά (πλέον) κλπ κλπ.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Κοίταξα το νέο Facebook SDK που βρίσκεται στο Codeplex, αλλά δουλεύει με v 4 (dynamics Κλπ) ενώ στην εταιρία έχουμε 3.5 .&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Οπότε, από το να φτιάξω το &lt;b&gt;very fat&lt;/b&gt; client μας για .ΝΕΤ 4 (είναι και λίγο μπαμπάτσικο, χώρια που είχε ξεκινήσει να φτιάχνεται με .ΝΕΤ 1.1, ούτε partial classes ούτε τίποτα) και πιθανώς να φάω τα νιάτα μου για να γίνει πορτ (άλλο θέμα αυτό, θα το πιάσω μελλοντικά) είπα να ασχοληθώ με το Graph. Ταλαιπωρήθηκα λίγο με το authentication (ανέφερα τι καλά δούλευε το παλαιότερο SDK?) αλλά στό τέλος "άνοιξαν" οι πύλες του FB.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Τώρα, το FB τα επιστρέφει όλα σε JSON. Αν είχα κάτι παρεμφερές με το XSD Θα μπορούσα να φτιάξω τις κλάσεις από τα επιστρεφόμενα strings.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Δυστυχώς, δεν έχω dynamics...&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Το θέμα είναι να γλιτώσω την δημιουργία των κλάσεων με το χέρι.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Σαν λιγότερη χειρότερη λύση βλέπω να μπαίνει το ενδιάμεσο βήμα XML. Βέβαια, ψάχνοντάς το, βρήκα κάποιους που γκρίνιαζαν για την λανθασμένη μετατροπή των τύπων δεδομένων, αλλά δεν το είδα περαιτέρω.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63171.aspx</link><pubDate>Fri, 11 Feb 2011 00:32:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63171</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63171.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63171</wfw:commentRss><description>&lt;P&gt;(Βλέπω ότι έγραψα λογίδριο, οπότε ρωτάω από τώρα ποιά είναι η πηγή του Json και πως θέλεις να το χρησιμοποιήσεις? REST service, NoSQL database, άλλο ?)&lt;/P&gt;
&lt;P&gt;Ουσιαστικά ψάχνεις για ένα proxy σε κάποιο JSON web service ή κάποια NoSQL βάση. Παρότι υπάρχουν JSON serializers όπως το &lt;A href="http://james.newtonking.com/projects/json/help/"&gt;Json.NET&lt;/A&gt; ή το &lt;A href="http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer(v=VS.100).aspx"&gt;JavaScriptSerializer&lt;/A&gt; του ίδιου του .NET Framework δεν βρήκα ούτε έχω ακούσει για proxy generators. Το πρόβλημα με το Json είναι ότι δεν έχει κάποιο σχήμα για να μπορείς να φτιάξεις proxies εκ των προτέρων. Κάθε αντικείμενο απλά περιέχει properties με τιμές και τίποτε δεν εμποδίζει το ίδιο property να έχει διαφορετικά δεδομένα από τη μία κλήση στην άλλη. &lt;/P&gt;
&lt;P&gt;Ο μόνος ασφαλής τρόπος να φτιάξεις ένα proxy είναι η πηγή των δεδομένων σου να παρέχει με άλλο τρόπο κάποιο schema για να μπορέσεις να φτιάξεις το proxy. Για παράδειγμα, τα ΑSMX/WCF Services επιστρέφουν μεν JSON αλλά παρέχουν το σχήμα μέσω του WSDL. Τα WCF Data Services κάνουν το ίδιο μέσω του Atom protocol. Το Visual Studio καταλαβαίνει αυτά τα δύο schemas και έτσι σου δημιουργεί το proxy. &lt;/P&gt;
&lt;P&gt;Αν η πηγή σου παρέχει κάποιο WSDL (π.χ. έχει και κλασσικά web services) μπορείς να δημιουργήσεις proxies μέσω του Visual Studio και μετά να χρησιμοποιήσεις το &lt;A href="http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx"&gt;DataContractJSonSerializer&lt;/A&gt; για να κάνεις κατευθείαν deserialize το Json στα proxy objects.&lt;/P&gt;
&lt;P&gt;Αντί να φτιάξεις proxies μπορείς να εκμεταλλευτείς το dynamic keyword της C# 4 και να δημιουργήσεις αντικείμενα τα οποία έχουν ως properties τιμές που διαβάζεις από JSon. Δες αυτό το παράδειγμα που συνδυάζει το JavaScriptSerializer με το dynamic για να δημιουργήσει αντικείμενα από JSon. Ένα json string της μορφής:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;{ 
    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"glossary"&lt;/SPAN&gt;: { 
        &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"title"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"example glossary"&lt;/SPAN&gt;, 
        &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GlossDiv"&lt;/SPAN&gt;: { 
            &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"title"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"S"&lt;/SPAN&gt;, 
            &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GlossList"&lt;/SPAN&gt;: { 
                &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GlossEntry"&lt;/SPAN&gt;: { 
                    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"ID"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"SGML"&lt;/SPAN&gt;, 
                    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"SortAs"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"SGML"&lt;/SPAN&gt;, 
                    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GlossTerm"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"Standard Generalized Markup Language"&lt;/SPAN&gt;, 
                    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"Acronym"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"SGML"&lt;/SPAN&gt;, 
                    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"Abbrev"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"ISO 8879:1986"&lt;/SPAN&gt;, 
                    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GlossDef"&lt;/SPAN&gt;: { 
                        &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"para"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"A meta-markup language, used to create markup languages such as DocBook."&lt;/SPAN&gt;, 
                        &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GlossSeeAlso"&lt;/SPAN&gt;: [&lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GML"&lt;/SPAN&gt;, &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"XML"&lt;/SPAN&gt;] 
                    }, 
                    &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"GlossSee"&lt;/SPAN&gt;: &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"markup"&lt;/SPAN&gt; 
                } 
            } 
        } 
    } 
}&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;μετατρέπεται σε αντικείμενα με απλές κλήσεις όπως&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;JavaScriptSerializer jss &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; JavaScriptSerializer(); 
jss.RegisterConverters(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; JavaScriptConverter[] { &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; DynamicJsonConverter() });&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;dynamic glossaryEntry &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; jss.Deserialize(json, &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;typeof&lt;/SPAN&gt;(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt;)) &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;as&lt;/SPAN&gt; dynamic;&lt;BR&gt;
Console.WriteLine(&lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"glossaryEntry.glossary.title: "&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;+&lt;/SPAN&gt; glossaryEntry.glossary.title);&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Όπως θα δεις στο &lt;A href="http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2010/08/22/using-c-4.0-and-dynamic-to-parse-json.aspx"&gt;post&lt;/A&gt;, ο κώδικας ο οποίος φτιάχνει τα αντικείμενα είναι εξαιρετικά απλός.&lt;/P&gt;
&lt;P&gt;Το μείον είναι ότι δεν μπορείς να ελέγξεις κατά το compile αν έχεις γράψει σωστά τα ονόματα των properties. Από την άλλη, το JSon δεν σου δίνει και καμμία εγγύηση ότι τα properties αυτά θα υπάρχουν όντως όταν θα κάνεις την κλήση στο runtime. Ουσιαστικά αυτό που χάνεις είναι το Intellisense που θα σου έδινε ένα proxy.&lt;/P&gt;
&lt;P&gt;Να ρωτήσω τέλος, όπως και στην αρχή, από που έρχεται το JSon? Αν, για παράδειγμα, έρχεται από κάποιο NoSQL database ίσως υπάρχουν ήδη clients τα οποία θα σου λύσουν το πρόβλημα. Αν έρχεται από κάποιο REST Service, ίσως να υπάρχουν ήδη proxy generators ή wsdl metadata&lt;/P&gt;</description></item><item><title>Δημιουργία κλάσης από JSON;</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63168.aspx</link><pubDate>Thu, 10 Feb 2011 23:40:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63168</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63168.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=63168</wfw:commentRss><description>Καλησπέρα,&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;υπάρχει κάποιο εργαλείο παρόμοιο με το XSD μόνο που να διαβάζει JSON και να δημιουργεί .ΝΕΤ classes; (Προτιμώ C# αλλά και σε VB δεν με χαλάει).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ή πρέπει να κάνω το JSON -&amp;gt; XML -&amp;gt; XSD ;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ευχαριστώ&lt;/div&gt;</description></item></channel></rss>