JsonSerializerHelper other

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using Newtonsoft.Json;

namespace Serializable
{
    public static class JsonSerializerHelper
    {
        public static TEntity JsonToEntity<TEntity>(string jsonStr)
        {
            using (StringReader sw = new StringReader(jsonStr))
            {
                JsonSerializer serializer = new JsonSerializer
                {
                    TypeNameHandling = TypeNameHandling.Objects,
                };
                using (JsonReader jw = new JsonTextReader(sw))
                {
                    TEntity entity = serializer.Deserialize<TEntity>(jw);
                    return entity;
                }

            }
        }

        public static string EntityToJson(object obj)
        {
            return EntityToJson(obj, null);
        }

        public static string EntityToJson(object obj, string[] exceptMemberName)
        {
            using (StringWriter sw = new StringWriter(System.Globalization.CultureInfo.InvariantCulture))
            {
                JsonSerializer serializer = new JsonSerializer
                {

                    NullValueHandling = NullValueHandling.Ignore,
                    ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
                    ContractResolver = new NHibernateContractResolver(exceptMemberName),
                };
                using (JsonWriter jw = new JsonTextWriter(sw))
                {
                    jw.Formatting = Formatting.Indented;
                    serializer.Serialize(jw, obj);
                }
                return sw.ToString();
            }
        }
    }
}

posted on 2012-04-30 18:33  武胜-阿伟  阅读(315)  评论(0编辑  收藏  举报