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);
            }
        }
  • 相关阅读:
    Java中的集合类
    Java中的包装类
    Java中的多线程总结(转)
    Java开发中的23种设计模式详解 (转)
    Java中异常处理和设计
    Jmeter的ForEach控制器
    Jmeter事务控制器
    Jmeter下线程顺序启动
    Jmeter跨线程调用参数
    Jmeter使用Python
  • 原文地址:https://www.cnblogs.com/shuaimeng/p/15503593.html
Copyright © 2011-2022 走看看