Beispiel #1
0
        private static void Flatten(List <String> pairs, JToken input, List <Object> indices)
        {
            if (input == null)
            {
                return;
            }

            switch (input.Type)
            {
            case JTokenType.Array:
            case JTokenType.Object:
            case JTokenType.Property:
                foreach (var token in input)
                {
                    indices.Add(token);
                    WwwFormUrlEncodedMediaTypeFormatter.Flatten(pairs, token, indices);
                    indices.RemoveAt(indices.Count - 1);
                }

                break;

            default:
                var value = input.ToObject <String>();
                if (value == null)
                {
                    return;
                }
                pairs.Add(String.Format("{0}={1}", Uri.EscapeDataString(input.Path), Uri.EscapeDataString(value)));
                break;
            }
        }
Beispiel #2
0
        public static String Serialize(Object value)
        {
            if (value == null)
            {
                return(null);
            }

            JToken        token = JToken.FromObject(value);
            List <String> pairs = new List <String>();

            WwwFormUrlEncodedMediaTypeFormatter.Flatten(pairs, token, new List <Object> {
            });
            return(String.Join("&", pairs));
        }