zoukankan      html  css  js  c++  java
  • 将一个简单对象转为Json字符串.

    将一个简单对象转为Json字符串.
    转换时,只对属性,成员变量做转换.

    using  System;
    using  System.Collections.Generic;
    using  System.Text;
    using  System.Reflection;
    namespace  ObjectToJson
    {
            public  class  ObjectToJson
            {
                    private  Object  _Ins;
                    /// <summary>
                    ///
                    /// </summary>
                    /// <param name="ins">简单对象</param>
                    public  ObjectToJson(object  ins)
                    {
                            _Ins  =  ins;
                    }
                    /// <summary>
                    /// 输入Json字符串
                    /// </summary>
                    /// <returns></returns>
                    public  string  ToJsonString()
                    {
                          return    ToJsonScring(_Ins);  
                    }
                    /// <summary>
                    /// 输入Json字符串
                    /// </summary>
                    /// <param name="ins"></param>
                    /// <returns></returns>
                    private  string  ToJsonScring(object  ins)
                    {
                            Type  a  =  ins.GetType();
                            StringBuilder  sb  =  new  StringBuilder();
                            sb.Append("{");
                            MemberInfo[]  mis  =  a.GetMembers();
                            foreach  (MemberInfo  mi  in  mis)
                            {
                                    object  mival  =  GetMemberValue(ins,  mi);
                                    if  (mival  !=  null)
                                    {
                                            sb.Append("\"");
                                            sb.Append(mi.Name);
                                            sb.Append("\":\"");
                                            string  mivaltypename  =  mival.GetType().Name.ToUpper();
                                            sb.Append(mival.ToString());
                                            sb.Append("\",");
                                    }
                            }
                            sb.Remove(sb.Length  -  1,  1);
                            sb.Append("}");
                            if  (sb.Length  >  2)
                                    return  sb.ToString();
                            else
                                    return  "";
                    }
                    /// <summary>
                    /// 取一个字段或属性的值.
                    /// </summary>
                    /// <param name="ins"></param>
                    /// <param name="member"></param>
                    /// <returns></returns>
                    private  object  GetMemberValue(object  ins,  MemberInfo  member)
                    {
                            Type  a  =  ins.GetType();
                            try
                            {
                                    return  a.InvokeMember(member.Name,  BindingFlags.GetProperty  |  BindingFlags.GetField,  null,  ins,  null);
                            }
                            catch
                            {
                                    return  null;
                            }
                    }
            }
    }

  • 相关阅读:
    Educational Codeforces Round 28 B. Math Show
    Educational Codeforces Round 28 A. Curriculum Vitae
    Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) D. Jury Meeting
    Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) C. Planning
    2017 Multi-University Training Contest 2 hdu 6047
    2017 Multi-University Training Contest 2 hdu 6045
    2017 Multi-University Training Contest 1 hdu 6043
    2017 Multi-University Training Contest 1 hdu 6034
    2017 Multi-University Training Contest 1 hdu 6033
    poj 2104主席树求区间第k小
  • 原文地址:https://www.cnblogs.com/houfeng/p/1671402.html
Copyright © 2011-2022 走看看