zoukankan      html  css  js  c++  java
  • 对返回的json数据重写格式,用特性JsonConverter

    继承JsonConverter特性

    public class ObjJsonConverter<T> : JsonConverter
        {
            public override bool CanConvert(Type objectType)
            {
                return objectType == typeof(T);
            }
    
            public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
            {
                if (reader.TokenType.Equals(JsonToken.String))
                {
                    string data = reader.Value.ToString();//读取字符串,然后解密
    
    
                    JsonReader jr = new JsonTextReader(new StringReader(data));
                    if (data.Substring(0, 1).ToString() == "[")//是数组
                    {
                        JArray jObj = JArray.Load(jr);
                        var obj = serializer.Deserialize<T>(jObj.CreateReader());
                        return obj;
                    }
                    else
                    {
                        JObject jObj = JObject.Load(jr);
                        var obj = serializer.Deserialize<T>(jObj.CreateReader());
                        return obj;
                    }
                }
                else
                {
                    JObject jArray = JObject.Load(reader);
                    var obj = serializer.Deserialize<T>(jArray.CreateReader());
                    return obj;
                }
            }
    
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                writer.WriteValue(value);
            }
        }
  • 相关阅读:
    python安装
    道德准则
    工作职场
    30岁之前
    互联网产品
    项目经理催活指南
    项目中如何找到优先级,以及工作时间安排
    语音行业相关概念
    cookie sessionStorage localStorage 的异同
    数组中map,forEach和for循环的区别
  • 原文地址:https://www.cnblogs.com/shuaimeng/p/15503593.html
Copyright © 2011-2022 走看看