I have written a small client - server application which passes JSON messages
back and forth.  The computer with the server application is running Windows
7 and the client application is on a Mac as well as on the iPhone using
MonoTouch.  When I serialize an object utilizing the
DataContractJsonSerializer it gives me two different JSON responses
depending on the OS I am using.  

On Windows 7 using mono/.net 3.5 it gives me this result:

[{"Suit":0},{"Suit":1},{"Suit":2}]

On OSX 10.6.5 using mono/.net 3.5 it gives me this result:

[{"__type":"Card:#JsonTest","Suit":0},{"__type":"Card:#JsonTest","Suit":1},{"__type":"Card:#JsonTest","Suit":2}]

Has anyone run into a similar problem or is this to be expected?

I have included a simple console application demonstrating the results
listed above.  For the console application to run you need to include two
reference: System.Runtime.Serialization and System.ServiceModel.Web.  If
anyone has any input on why this is and how to remedy it, it would be
greatly appreciated!

Thank you,
Adam


using System;
using System.Collections.Generic;
using System.Runtime.Serialization.Json;
using System.IO;
using System.Text;

namespace JsonTest
{
        class MainClass
        {
                public static void Main(string[] args)
                {
                        Hand hand = new Hand();
                        hand.Add(new Card { Suit = 0 });
                        hand.Add(new Card { Suit = 1 });
                        hand.Add(new Card { Suit = 2 });
                        
                        string json;
                        
                        DataContractJsonSerializer ser = new
DataContractJsonSerializer(hand.GetType());
                        using (MemoryStream ms = new MemoryStream())
                        {
                                ser.WriteObject(ms, hand);
                                json = Encoding.Default.GetString(ms.ToArray());
                        } 
                        
                        Console.WriteLine(json); 
                }
        }

        public class Card
        {
                public int Suit { get; set; }
        }

        public class Hand : List
        {
                
        } 
}


--
View this message in context: 
http://mono.1490590.n4.nabble.com/DataContractJsonSerializer-Gives-Different-Results-Depending-OS-tp3391376p3391376.html
Sent from the Mono - General mailing list archive at Nabble.com.
_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to