c#中如何用JsonExSerializer处理Json字符串

先在项目中引用JsonExSerializer.dll,如果没有,可以到我的资源中下载。

创建一个类,如下所示,然后通过 静态方法MonitorData.Parse(string)就可以得到一个类的实例,然后开始使用此实例了。注意字符串中的字段必须是类中有定义的属性,但是类中有定义属性不需要在字符串中存在。

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using JsonExSerializer;


namespace CommonClass
{
    public class MonitorData
    {
        public MonitorData()
        {
            para = new Hashtable();
        }

        public string jvm_run_time { set; get; }
        public string total_jvm_memory { set; get; }
        public string jvm_free_memory { set; get; }
        public string jvm_used_memory { set; get; }
        public string active_execute_threads { set; get; }
        public string execute_threads_total_count { set; get; }
        public string execute_hread_idle_count { set; get; }
        public string queue_length { set; get; }
        public string pending_user_request_count { set; get; }
        public string completed_request_count { set; get; }
        public string hogging_thread_count { set; get; }
        public string standby_thread_count { set; get; }
        public string throughput { set; get; }
        public string jdbc_datasourse_name { set; get; }
        public string active_connections_average_count { set; get; }
        public string active_connections_current_count { set; get; }
        public string active_connections_high_count { set; get; }
        public string online_user_num { set; get; }
        public DateTime starttime { set; get; }
        public DateTime endtime { set; get; }
        public TimeSpan lasttime
        {
            get
            {
                return endtime - starttime;
            }
        }


        public Hashtable para { set; get; }


        public string GetStringParaValue(string key)
        {
            if (!para.Contains(key) || para[key] == null)
            {
                return string.Empty;
            }
            else
            {
                return para[key].ToString();
            }
        }


        public long GetIntParaValue(string key)
        {
            if (!para.Contains(key) || !(para[key] is long))
            {
                return -1;
            }
            else
            {
                return (long)para[key];
            }
        }


        public override string ToString()
        {
            Serializer s = new Serializer(typeof(MonitorData));
            s.Context.OutputTypeComment = false;
            s.Context.OutputTypeInformation = false;


            return s.Serialize(this);
        }


        public static MonitorData Parse(string str)
        {
            Serializer s = new Serializer(typeof(MonitorData));
            try
            {
                return s.Deserialize(str) as MonitorData;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
    }
}


使用时比如json字符串为

{"jvm_run_time":"12.37 ","total_jvm_memory":"2048.00 ","jvm_free_memory":"681.90 ","jvm_used_memory":"1366.10 ","active_execute_threads":"-1","execute_threads_total_count":"-1","execute_hread_idle_count":"-1","queue_length":"-1","pending_user_request_count":"-1","completed_request_count":"-1","hogging_thread_count":"-1","standby_thread_count":"-1","throughput":"-1","jdbc_datasourse_name":"-1","active_connections_average_count":"-1","active_connections_current_count":"-1","active_connections_high_count":"-1","online_user_num":"1168"}

 MonitorData md = MonitorData.Parse(上面的字符串);即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值