IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> c#轮子json操作工具类 -> 正文阅读

[大数据]c#轮子json操作工具类

namespace asepnetcorewebapi.utils {


    public class ResultInfo<T>
    {
        public const int FLAG_NULL = 0;
        public static readonly int FLAG_FROM_PARENT = 1;
        public const int FLAG_HAS_VALUE = 2;
        public int resultflag { get; set; }
        public T returnvalue { get; set; }

        public static ResultInfo<T> createNull(T v)
        {
            ResultInfo<T> result = new ResultInfo<T>();
            result.resultflag = FLAG_NULL;
            result.returnvalue = v;
            return result;
        }
        public static void xx()
        {
        }
        public static ResultInfo<T> createExpandParent(T v)
        {
            ResultInfo<T> result = new ResultInfo<T>();
            result.resultflag = FLAG_FROM_PARENT;
            result.returnvalue = v;
            return result;
        }
    }
    class JSONUtil
    {




        public static int getIntValueX(JObject objectarg, string key)
        {
            return getIntValueX(objectarg, key, 0);
        }


        internal static bool isJSONObject(string value)
        {
            if (value == null || value.Length < 2 ){

                return false;
            }
            if (!value.StartsWith("{")||!value.EndsWith("}"))
            {
                return false;
            }
            return true;
        }

        public static int getIntValueX(JObject objectarg, string key, int defaultValue)
        {
            return getIntValue(objectarg, key, defaultValue).returnvalue;
        }

        public static ResultInfo<int> getIntValue(JObject objectarg, string key, int defaultValue=-1)
        {
            if (!jsonKeyIsExist(objectarg, key))
            {
                ResultInfo<int> info = new ResultInfo<int>();
                info.resultflag = ResultInfo<int>.FLAG_FROM_PARENT;
                info.returnvalue = defaultValue;
                return info;
            }

            if (jsonValueIsNull(objectarg, key))
            {
                ResultInfo<int> info = new ResultInfo<int>();
                info.resultflag = ResultInfo<int>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }

            try
            {
                JToken value = objectarg.GetValue(key);
                ResultInfo<int> info = new ResultInfo<int>();
                info.resultflag = ResultInfo<int>.FLAG_HAS_VALUE;
                info.returnvalue = Int32.Parse(value.ToString());
                return info;
            }
            catch (Exception e)
            {
                //e.ToString();
                ResultInfo<int> info = new ResultInfo<int>();
                info.resultflag = ResultInfo<int>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }



        }




        public static bool getBooleanValueX(JObject objectarg, string key, bool defaultValue)
        {
            return getBooleanValue(objectarg, key, defaultValue).returnvalue;
        }
        public static ResultInfo<bool> getBooleanValue(JObject objectarg, string key, bool defaultValue)
        {
            if (!jsonKeyIsExist(objectarg, key))
            {
                ResultInfo<bool> info = new ResultInfo<bool>();
                info.resultflag = ResultInfo<bool>.FLAG_FROM_PARENT;
                info.returnvalue = defaultValue;
                return info;
            }

            if (jsonValueIsNull(objectarg, key))
            {
                ResultInfo<bool> info = new ResultInfo<bool>();
                info.resultflag = ResultInfo<bool>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }


            try
            {
                JToken value = objectarg.GetValue(key);
                ResultInfo<bool> info = new ResultInfo<bool>();
                info.resultflag = ResultInfo<bool>.FLAG_HAS_VALUE;
                info.returnvalue = bool.Parse(value.ToString());
                return info;
            }
            catch (Exception e)
            {
                //e.ToString();
                ResultInfo<bool> info = new ResultInfo<bool>();
                info.resultflag = ResultInfo<bool>.FLAG_NULL;
                info.returnvalue = defaultValue;

                return info;
            }



        }

        public static string getStringValueX(JObject objectarg, string key, string value="")
        {
            return getStringValue(objectarg, key, value).returnvalue;
        }
        public static ResultInfo<string> getStringValue(JObject objectarg, string key, string defaultValue="")
        {
            if (!jsonKeyIsExist(objectarg, key))
            {
                ResultInfo<string> info = new ResultInfo<string>();
                info.resultflag = ResultInfo<string>.FLAG_FROM_PARENT;
                info.returnvalue = defaultValue;
                return info;
            }

            if (jsonValueIsNull(objectarg, key))
            {
                ResultInfo<string> info = new ResultInfo<string>();
                info.resultflag = ResultInfo<string>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }

            try
            {
                JToken value = objectarg.GetValue(key);
                ResultInfo<string> info = new ResultInfo<string>();
                info.resultflag = ResultInfo<string>.FLAG_HAS_VALUE;
                info.returnvalue = value.ToString();
                return info;
            }
            catch (Exception e)
            {
                //e.ToString();
                ResultInfo<string> info = new ResultInfo<string>();
                info.resultflag = ResultInfo<string>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }



        }



        public static JObject getJSONObjectValueX(JObject objectarg, string key, JObject defaultValue)
        {
            return getJSONObjectValue(objectarg, key, defaultValue).returnvalue;
        }
        public static ResultInfo<JObject> getJSONObjectValue(JObject objectarg, string key, JObject defaultValue)
        {
            if (!jsonKeyIsExist(objectarg, key))
            {
                ResultInfo<JObject> info = new ResultInfo<JObject>();
                info.resultflag = ResultInfo<JObject>.FLAG_FROM_PARENT;
                info.returnvalue = defaultValue;
                return info;
            }

            if (jsonValueIsNull(objectarg, key))
            {
                ResultInfo<JObject> info = new ResultInfo<JObject>();
                info.resultflag = ResultInfo<JObject>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }


            try
            {
                JToken value = objectarg.GetValue(key);
                ResultInfo<JObject> info = new ResultInfo<JObject>();
                info.resultflag = ResultInfo<JObject>.FLAG_HAS_VALUE;
                info.returnvalue = value as JObject;
                return info;
            }
            catch (Exception e)
            {
                //e.ToString();
                ResultInfo<JObject> info = new ResultInfo<JObject>();
                info.resultflag = ResultInfo<JObject>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }



        }


        public static ResultInfo<JArray> getJSONArrayValue(JObject objectarg, string key, JArray defaultValue)
        {
            if (!jsonKeyIsExist(objectarg, key))
            {
                ResultInfo<JArray> info = new ResultInfo<JArray>();
                info.resultflag = ResultInfo<JArray>.FLAG_FROM_PARENT;
                info.returnvalue = defaultValue;
                return info;
            }

            if (jsonValueIsNull(objectarg, key))
            {
                ResultInfo<JArray> info = new ResultInfo<JArray>();
                info.resultflag = ResultInfo<JObject>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }


            try
            {
                JToken value = objectarg.GetValue(key);
                ResultInfo<JArray> info = new ResultInfo<JArray>();
                info.resultflag = ResultInfo<JArray>.FLAG_HAS_VALUE;
                info.returnvalue = value as JArray;
                return info;
            }
            catch (Exception e)
            {
                //e.ToString();
                ResultInfo<JArray> info = new ResultInfo<JArray>();
                info.resultflag = ResultInfo<JArray>.FLAG_NULL;
                info.returnvalue = defaultValue;
                return info;
            }



        }


        public static float getFloatValue(JObject objectarg, string key)
        {
            ResultInfo<float> result = getFloatValue(objectarg, key, 0);
            if (result.resultflag == ResultInfo<float>.FLAG_HAS_VALUE)
            {


            }
            return result.returnvalue;
        }

        public static bool jsonKeyIsExist(JObject objectarg, string key)
        {

            if (key == "reuse")
            {
            }
            return objectarg.GetValue(key) != null;
        }


        public static bool jsonValueIsNull(JObject objectarg, string key)
        {
            JProperty jobjecttemp = objectarg.Property(key);
            if (jobjecttemp == null)
            {
                return true;
            }
            JToken obj = jobjecttemp.Value;
            if (obj.Type == JTokenType.Null)
            {
                return true;
            }
            else
            {
                return false;
            }
            //return objectarg.Property(key) == null;//只能判断key是否存在
        }

        public static JTokenType getJSONValueType(JValue vlaue)
        {
            return vlaue.Type;
        }

        public static ResultInfo<float> getFloatValue(JObject objectarg, string key, float defaultValue)
        {

            //bool keyisexist = jsonobj2.Property("name") == null || jsonobj2.Property("name").ToString() == "";

            if (!jsonKeyIsExist(objectarg, key))
            {
                return ResultInfo<float>.createExpandParent(defaultValue);
            }

            if (jsonValueIsNull(objectarg, key))
            {
                return ResultInfo<float>.createNull(defaultValue);
            }

            if (jsonValueIsErrorType(objectarg, key))
            {
                throw new FormatException("错误的类型" + objectarg.Type);
            }

            object obj = objectarg.GetValue(key);//hasValues
            if (obj == null)
            {
                return ResultInfo<float>.createNull(defaultValue);
            }
            else
            {
                try
                {
                    ResultInfo<float> info = new ResultInfo<float>();
                    info.resultflag = ResultInfo<int>.FLAG_HAS_VALUE;
                    info.returnvalue = float.Parse(obj.ToString());
                    return info;
                }
                catch (Exception e)
                {
                    //e.ToString();
                    ResultInfo<float> info = new ResultInfo<float>();
                    info.resultflag = ResultInfo<float>.FLAG_NULL;
                    info.returnvalue = float.Parse(obj.ToString());
                    return info;
                }
            }



        }

        private static bool jsonValueIsErrorType(JObject objectarg, string key)
        {
            if (objectarg.Type == JTokenType.Undefined)
            {
                return true;// syntactic error .
            }
            else
            {
                return false;
            }
            //throw new NotImplementedException();
        }


        private static bool jsonValueIsAspectType(JObject objectarg, string key, JTokenType aspectType)
        {
            if (objectarg.Type == aspectType)
            {
                return true;
            }
            else
            {
                return false;
            }
        }



    }


}

本文由博客一文多发平台 OpenWrite 发布!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 16:00:53  更:2021-12-14 16:02:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:36:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码