类名:

public class Messageback
{
public string errcode { get; set; }
public string errmsg { get; set; }
}

public class MessageInfo
{
public string touser { get; set; }
//public string toparty { get; set; }
public string msgtype { get; set; }
public string agentid { get; set; }
public List<Txt_content> text { get; set; }
}
public class NewsInfo
{
public string touser { get; set; }
public string msgtype { get; set; }
public string agentid { get; set; }
public string news { get; set; }
}

public class news_articles
{
public List<articles_info> articles { get; set; }
}

public class articles_info
{
public string title { get; set; }
public string description { get; set; }
public string url { get; set; }
public string picurl { get; set; }
}

public class Txt_content
{
public string content{get;set;}
}

方法:

protected void QunFa_Click(object sender, EventArgs e)
{
MessageInfo msinfo = new MessageInfo();
int Row = this.CheckBoxList1.Items.Count;
int snum = 0;
int fnum = 0;
string OpenID, Agentname, PostData1, PostData2, NewPostData,ToUser;
ArrayList suclist = new ArrayList();
ArrayList faillist = new ArrayList();
for(int i=0;i<Row ;i++)
{
if(this.CheckBoxList1.Items[i].Selected == true)
{
msinfo.touser = this.CheckBoxList1.Items[i].Value;
Agentname = this.CheckBoxList1.Items[i].Text;
msinfo.agentid = "28";
Txt_content txt = new Txt_content { content = Content.Text };
List<Txt_content> list = new List<Txt_content>();
list.Add(txt);
msinfo.text = list;
msinfo.msgtype = "text";
string res = "";
string Access_Token = IsExistAccess_Token();

string posturl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + Access_Token;
string postData = JsonConvert.SerializeObject(msinfo);
PostData1 = postData.Replace("[", "");
PostData2 = PostData1.Replace("]", "");
res = GetPage(posturl, PostData2);
//微信消息返回处理
JObject msgback = JObject.Parse(res);
//Response.Write(res);
int suc = Convert.ToInt32(msgback["errcode"].ToString());
if(suc==0)
{
suclist.Add(Agentname);
snum = snum + 1;
}
else
{
faillist.Add(Agentname);
fnum = fnum + 1;
}
}
}
txtalert.InnerHtml = "<b>共" + snum + "名员工短信发送成功! "+ fnum +"名发送失败!</b><br/>";
//输出人员名单
txtalert.InnerHtml += "<b>发送成功人员名单:</b><br/>";
int snum_temp = 0;
foreach (string suclist_temp in suclist)
{
//标点符号处理
snum_temp = snum_temp + 1;
if(snum_temp==suclist.Count)
{
txtalert.InnerHtml += suclist_temp;
}
else
{
txtalert.InnerHtml += suclist_temp;
txtalert.InnerHtml += ",";
}

}
txtalert.InnerHtml += "<br/><b>发送失败人员名单:</b><br/>";
int fnum_temp = 0;
foreach (string faillist_temp in faillist)
{
//标点符号处理
fnum_temp = fnum_temp + 1;
if(fnum_temp==faillist.Count)
{
txtalert.InnerHtml += faillist_temp;
}
else
{
txtalert.InnerHtml += faillist_temp;
txtalert.InnerHtml += ",";
}

}
//alert.InnerHtml += "<br/>成功人员名单:"+ +"。<br/>失败人员名单:"+ faillist.ToString() +"";
//Response.Write("共有" + num + "名员工短信发送成功!");
}

protected void tuwen_Click(object sender, EventArgs e)
{
NewsInfo newsinfo = new NewsInfo();
news_articles news_art = new news_articles();
articles_info art_info = new articles_info();
ArrayList suclist = new ArrayList();
ArrayList faillist = new ArrayList();
int Row = this.CheckBoxList1.Items.Count;
int snum = 0;
int fnum = 0;
string tt = this.title.Text;
string des = this.descrip.Text;
string url = this.url.Text;//图文链接
string picurl = this.picurl.Text;//封面图片
int num = 0;
string OpenID, PostData1, PostData2, Agentname;
for (int i = 0; i < Row; i++)
{
if (this.CheckBoxList1.Items[i].Selected == true)
{
Agentname = this.CheckBoxList1.Items[i].Text;
newsinfo.touser = this.CheckBoxList1.Items[i].Value;
newsinfo.msgtype = "news";
newsinfo.agentid = "28";
//art_info.title = Agentname + "同学,今天是你的生日,祝你生日快乐~!";
art_info.title = tt;
art_info.description = des;
art_info.url = url;
art_info.picurl = picurl;
List<articles_info> list = new List<articles_info>();
list.Add(art_info);
news_art.articles = list;
newsinfo.news = JsonConvert.SerializeObject(news_art).Replace("\\","");
string res = "";
string Access_Token = IsExistAccess_Token();
string postData = JsonConvert.SerializeObject(newsinfo);
PostData1 = postData.Replace("\"[", "[");
PostData2 = PostData1.Replace("]\"", "]");
PostData2 = PostData2.Replace("\":\"{", "\":{");
PostData2 = PostData2.Replace("}\"}", "}}");
PostData2 = PostData2.Replace("\\", "");
string posturl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + Access_Token;
//string postData = "{\"touser\":\"" + OpenID +"\",\"msgtype\":\"news\",\"news\":{\"articles\":[{\"title\":\""+ tt +"\",\"description\":\""+ des +"\",\"url\":\""+ url +"\",\"picurl\":\""+ picurl +"\"}]}";
res = GetPage(posturl,PostData2);

JObject msgback = JObject.Parse(res);
//Response.Write(res);
int suc = Convert.ToInt32(msgback["errcode"].ToString());
if (suc == 0)
{
suclist.Add(Agentname);
snum = snum + 1;
}
else
{
faillist.Add(Agentname);
fnum = fnum + 1;
}
}

}
newsalert.InnerHtml = "<b>共" + snum + "名员工图文消息发送成功! " + fnum + "名发送失败!</b><br/>";
//输出人员名单
newsalert.InnerHtml += "<b>发送成功人员名单:</b><br/>";
int snum_temp = 0;
foreach (string suclist_temp in suclist)
{
//标点符号处理
snum_temp = snum_temp + 1;
if (snum_temp == suclist.Count)
{
newsalert.InnerHtml += suclist_temp;
}
else
{
newsalert.InnerHtml += suclist_temp;
newsalert.InnerHtml += ",";
}

}
newsalert.InnerHtml += "<br/><b>发送失败人员名单:</b><br/>";
int fnum_temp = 0;
foreach (string faillist_temp in faillist)
{
//标点符号处理
fnum_temp = fnum_temp + 1;
if (fnum_temp == faillist.Count)
{
newsalert.InnerHtml += faillist_temp;
}
else
{
newsalert.InnerHtml += faillist_temp;
newsalert.InnerHtml += ",";
}

}
}

转载于:https://www.cnblogs.com/pp521/p/4943029.html

c#自定义Json类相关推荐

  1. java 自定义json解析注解 复杂json解析 工具类

    java 自定义json解析注解 复杂json解析 工具类 目录 java 自定义json解析注解 复杂json解析 工具类 1.背景 2.需求-各式各样的json 一.一星难度json[json对象 ...

  2. kettle中java组件_kettle系列-[KettleUtil]kettle插件,类似kettle的自定义java类控件

    该kettle插件功能类似kettle现有的定义java类插件,自定java类插件主要是支持在kettle中直接编写java代码实现自定特殊功能,而本控件主要是将自定义代码转移到jar包,就是说自定义 ...

  3. 玩转 SpringBoot2.x 之自定义配置类整合Druid(Mybatis版)

    专题系列分类:玩转SpringBoot2.x系列教程 前言 在阅读前这篇博客之前请先移步 玩转 SpringBoot 2.x 整合 Mybatis因为我们这篇博客是在其基础之上进行讲解的.在玩转 Sp ...

  4. 自定义json格式-解析为对象

    Json解析-harmony ps:result为自定义格式的json字符串,,有更好的方法欢迎教导 1. HiJson 访问中央仓库找到hijson,找到用的多的版本复制gradle类型的依赖,将依 ...

  5. java反射实现自定义json转对象方法-忽略字段大小写、字段个数

    java反射实现自定义json转对象方法-忽略字段大小写.字段个数 开发过程中经常会遇到json转对象,可以使用FastJson或者Gson自带的工具类进行转换,但当遇到json与对象属性名称大小写不 ...

  6. SpringBoot自定义JSON序列化规则

    自定义类继承JsonSerializer import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ReflectUtil; ...

  7. SpringSecurity权限管理框架系列(六)-Spring Security框架自定义配置类详解(二)之authorizeRequests配置详解

    1.预置演示环境 这个演示环境继续沿用 SpringSecurit权限管理框架系列(五)-Spring Security框架自定义配置类详解(一)之formLogin配置详解的环境. 2.自定义配置类 ...

  8. Spring中自定义JSON注释

    工具类代码下载地址:链接:http://pan.baidu.com/s/1qYNQOGW 密码:e18w 1.如图1的系统注释,有的时候我们在开发的时候系统的注释并不够用,此时我们可以自己写一些注释来 ...

  9. 什么是php model类,thinkphp的自定义model类有什么作用?

    请问,thinkphp的自定义model类有什么作用?如: <?php //自定义Modle类 namespace Home\Model; use Think\Model; class StuM ...

最新文章

  1. 【Git】git的基本使用
  2. oracle 存过调试 stepinto stepover stepout
  3. Linux sed编辑器
  4. 文献学习(part77)--UNIC: A fast nonparametric clustering
  5. Markdown预览功能不可用解决方案
  6. SpringMVC中使用作用域对象完成数据的流转
  7. poj 1985 Cow Marathon 【树的直径】
  8. jQuery对象与DOM对象之间的转换
  9. 手把手带你开发豆瓣FM(vue)
  10. 【数据可视化】免费开源BI工具DataEase实现了SQL数据集和Excel数据集关联?(什么?快别挡着我,冲!)
  11. android 可逆加密,AndroidMD5加密算法(可逆)
  12. kvaser怎么用?Kvaser 汽车CAN通讯协议总线分析仪新手入门常见问题解决方案教程
  13. 开发人员使用Helix QAC实现静态代码测试合规性的五大原因
  14. 国家铁路局招聘面试题汇集
  15. craftsmanship中文_欢迎访问叶登民简体中文主页!
  16. RT-AC87U华硕路由器外网登陆
  17. scrapy爬虫框架教程(二)-- 爬取豆瓣电影
  18. 关于推荐系统中的DOA
  19. php打印j机1015的驱动,HP LaserJet1015打印机驱动
  20. 极大似然估计原理详解

热门文章

  1. 美术干货:用Blender绘制low poly风格的游戏角色
  2. 过程化技术:打造「开放世界」的秘密
  3. idea配置tomcat必坑指南
  4. Oracle 服务器 进程中的 LOCAL=NO 和 LOCAL=YES
  5. linux学习笔记-10.解压与压缩
  6. leetcode第72题:编辑距离
  7. Android手机中怎么样在没root的情况下 修改 hosts 文件
  8. 解决 Ubuntu Software (Software Center) Crash 问题
  9. 性能测试 (四) 常用指标
  10. WebView三个方法区别(解决乱码问题)