public void DeserializeKnownType()
        {
            JsonMapper mapper = new JsonMapper();
            mapper.RegisterDeserializer(typeof(Class1), new Class1Deserializer());

            JsonObject value = new JsonObject();
            value.AddValue("ID", new JsonValue("007"));
            Class1 obj1 = mapper.Deserialize<Class1>(value);

            Assert.IsNotNull(obj1);
            Assert.AreEqual("007", obj1.ID);
        }
        public JsonValue Serialize(object obj, JsonMapper mapper)
        {
            Invitation invitation = (Invitation)obj;

            JsonObject result = new JsonObject();
            result.AddValue("subject", new JsonValue(invitation.Subject));
            result.AddValue("body", new JsonValue(invitation.Body));

            JsonObject recipients = new JsonObject();
            JsonArray people = new JsonArray();
            JsonObject person = new JsonObject();
            if (invitation.Recipient.ID != null)
            {
                person.AddValue("_path", new JsonValue("/people/" + invitation.Recipient.ID));
            }
            else
            {
                person.AddValue("_path", new JsonValue("/people/email=" + invitation.Recipient.Email));
                person.AddValue("first-name", new JsonValue(invitation.Recipient.FirstName));
                person.AddValue("last-name", new JsonValue(invitation.Recipient.LastName));
            }
            JsonObject personValue = new JsonObject();
            personValue.AddValue("person", person);
            people.AddValue(personValue);
            recipients.AddValue("values", people);
            result.AddValue("recipients", recipients);

            JsonObject itemContent = new JsonObject();
            JsonObject request = new JsonObject();
            request.AddValue("connect-type", new JsonValue("friend"));
            if (invitation.Recipient.AuthToken != null)
            {
                string[] authToken = invitation.Recipient.AuthToken.Split(':');
                JsonObject authorization = new JsonObject();
                authorization.AddValue("name", new JsonValue(authToken[0]));
                authorization.AddValue("value", new JsonValue(authToken[1]));
                request.AddValue("authorization", authorization);
            }
            itemContent.AddValue("invitation-request", request);
            result.AddValue("item-content", itemContent);

            return result;
        }
        public JsonValue Serialize(object obj, JsonMapper mapper)
        {
            Message message = (Message)obj;

            JsonObject result = new JsonObject();
            result.AddValue("subject", new JsonValue(message.Subject));
            result.AddValue("body", new JsonValue(message.Body));

            JsonObject recipients = new JsonObject();
            JsonArray people = new JsonArray();
            foreach (string id in message.RecipientIds)
            {
                JsonObject person = new JsonObject();
                person.AddValue("_path", new JsonValue("/people/" + id));

                JsonObject personValue = new JsonObject();
                personValue.AddValue("person", person);
                people.AddValue(personValue);
            }
            recipients.AddValue("values", people);
            result.AddValue("recipients", recipients);

            return result;
        }
 public JsonValue Serialize(object obj, JsonMapper mapper)
 {
     Class2 obj1 = obj as Class2;
     JsonObject value = new JsonObject();
     value.AddValue("ID", new JsonValue(obj1.ID));
     return value;
 }
        public void PostJsonValueForMessage()
        {
            template.MessageConverters.Add(new SpringJsonHttpMessageConverter());

            JsonObject user = new JsonObject();
            user.AddValue("Name", new JsonValue("Lisa Baia"));

            HttpResponseMessage result = template.PostForMessage("user", user);
            Assert.AreEqual(new Uri(new Uri(uri), "/user/3"), result.Headers.Location, "Invalid location");
            Assert.AreEqual(HttpStatusCode.Created, result.StatusCode, "Invalid status code");
            Assert.AreEqual("User id '3' created with 'Lisa Baia'", result.StatusDescription, "Invalid status description");
        }
            public JsonValue Serialize(object obj, JsonMapper mapper)
            {
                CustomClass2 data = obj as CustomClass2;

                JsonObject result = new JsonObject();
                result.AddValue("ID", new JsonValue(data.ID));
                result.AddValue("Age", new JsonValue(data.Age));
                return result;
            }
        public void WriteJsonValue()
        {
            string expectedBody = "{\"ID\":1,\"Age\":31}";
            JsonObject body = new JsonObject();
            body.AddValue("ID", new JsonValue(1));
            body.AddValue("Age", new JsonValue(31));

            MockHttpOutputMessage message = new MockHttpOutputMessage();

            converter.Write(body, null, message);

            Assert.AreEqual(expectedBody, message.GetBodyAsString(Encoding.UTF8), "Invalid result");
            Assert.AreEqual(new MediaType("application", "json"), message.Headers.ContentType, "Invalid content-type");
            //Assert.IsTrue(message.Headers.ContentLength > -1, "Invalid content-length");
        }