C# JSON 串生成

记录!!!

使用接口工具,获取得到 datatable ,dicTable字典  、"romens",和pushtime 可写可删 

将其写入下面代码即可

 JObject jsonData = GetJObject("romens", pushtime, datatable, saa, dicTable, "datas");

       /// <summary>
        ///  生成json + 加密
        /// </summary>
        /// <param name="appid">根据自己实际情况是否需要添加,可删除</param>
        /// <param name="pushtime">根据自己实际情况是否需要添加,可删除</param>
        /// <param name="datas">获取到的datatable</param>
        /// <param name="sign">JSON字符串</param>
        /// <returns></returns>
       
        private JObject GetJObject(string appid, string pushtime, DataTable dt, string sign, Dictionary<string, string> dicTable, string detName)  //, DataTable dt,DataTable dtDet
        {

            JObject jObject = new JObject();

            //string datas=string.Empty;
            jObject.Add("appid", appid);
            jObject.Add("pushtime", pushtime);
            //jObject.Add("datas", datas);

            //数组格式
            JArray jArray = new JArray();
            //数组明细组成
            JObject jObjectDet = new JObject();
            for (int a = 0; a < dt.Rows.Count; a++)
            {
                jObjectDet = new JObject();

                for (int b = 0; b < dt.Columns.Count; b++)
                {
                    //如果该列被允许添加到json中
                    if (ifExis(dicTable, dt.Columns[b].ColumnName.ToUpper()))
                    {
                        string keyName = "";
                        if (dicTable.TryGetValue(dt.Columns[b].ColumnName.ToString().ToUpper(), out keyName))
                        {
                            jObjectDet.Add(keyName, dt.Rows[a][b].ToString());
                        }
                    }
                }
                jArray.Add(jObjectDet);

            }
            jObject.Add(detName, jArray);
            //Log("加密之前:" + sign);
            jObject.Add("sign", EncryptWithMD5(sign));
            //Log("加密之后:" + EncryptWithMD5(sign));
            return jObject;
        }
        /// <summary>
        /// 判断传过来的数据源的列是否生成到Json中
        /// </summary>
        /// <param name="dicTable"></param>
        /// <param name="xxStr"></param>
        /// <returns></returns>
        public bool ifExis(Dictionary<string, string> dicTable, string xxStr)   //判断dicTable的key  是否与 传过来的string串匹配
        {
            bool boolFlg = false;                   
            foreach (var temp in dicTable)          
            {
                if (temp.Key.Equals(xxStr))
                {
                    boolFlg = true;
                }
            }
            return boolFlg;
        }
        /// <summary>
        /// 生成sign json 
        /// </summary>
        /// <param name="appid"></param>
        /// <param name="pushtime"></param>
        /// <returns></returns>
        private JObject GetSign(string appid, string pushtime)  //, DataTable dt,DataTable dtDet
        {
            JObject jObject = new JObject();


            jObject.Add("appid", appid);
            jObject.Add("pushtime", pushtime);

            return jObject;
        }

效果如:

{
  "appid": "romens",
  "pushtime": "20211025 00:00:06",
  "datas": [
    {  },

    {  },   

    {  },

    {  }  ] ,

    "sign": "819D4CF185B075F7E0E8FA5026451557"

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值