C# JSON和对象之间转换失败

stevenjin 2017-12-02 03:25:29
将C#转换为json时,head等部分没转成功。
1.要转换的JSON对象

{
"msgtype": "oa",
"oa": {
"message_url": "http://dingtalk.com",
"head": {
"bgcolor": "FFBBBBBB",
"text": "头部标题"
},
"body": {
"title": "正文标题",
"content": "大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本",
}
}
}

2.封装的转换C#
ublic class OAMsgModel : MessageRequestBaseModel
{
public OAMsgModel()
{
this.MessageType = MessageType.Oa;
}
public OA oa { get; set; }
public Body body { get; set; }
}

public class OA
{
public string Message_url { get; set; }
public Head head { get; set; }
}

public class Head
{
public string BgColor { get; set; }
public string Text { get; set; }
}

public class Body
{
public string Title { get; set; }
public string Content { get; set; }
}


3.调用:
  public async Task<string> sendOaMessage()
{
var msgModel = new OAMsgModel()
{
// Agentid = "92133276",
Agentid = "136163997",
oa = new OA()
{
Message_url = "https://open-doc.dingtalk5.com",
head = new Head()
{
BgColor = "FFBBBBBB",
Text = "OA发送测试消息2"
},
},
body = new Body()
{
Title="little title",
Content = "测试内容2",
},
Touser = "manager4469"
};
return await dtManager.SendMessage(msgModel);
}
...全文
721 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenjin 2017-12-07
  • 打赏
  • 举报
回复
兄弟你眼睛够坚的,不过是我封装错了地方。
 public class OA
    {
        public string Message_url { get; set; }
        public Head head { get; set; }
        public Body body { get; set; }

    }
大然然 2017-12-06
  • 打赏
  • 举报
回复
结分给我吧,此贴完结。
大然然 2017-12-06
  • 打赏
  • 举报
回复
因为你的content 后面多了一个逗号 { "msgtype": "oa", "oa": { "message_url": "http://dingtalk.com", "head": { "bgcolor": "FFBBBBBB", "text": "头部标题" }, "body": { "title": "正文标题", "content": "大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本", } } } ################################################################################################################### 正确的应该是 { "msgtype": "oa", "oa": { "message_url": "http://dingtalk.com", "head": { "bgcolor": "FFBBBBBB", "text": "头部标题" }, "body": { "title": "正文标题", "content": "大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本大段文本" } } }
stevenjin 2017-12-04
  • 打赏
  • 举报
回复
谢谢持续关注,以下是调试界面
 public async Task<string> SendMessage(MessageRequestBaseModel msgModel)
{
var url = _addressConfig.SendMessageUrl;
var result = await _client.UploadModel(url,msgModel);

return result;

}


  • 打赏
  • 举报
回复
是的,需要贴出你的 SendMessage 源代码和你的调试画面,要看到你在关键代码上的调试内容。
xuzuning 2017-12-03
  • 打赏
  • 举报
回复
你有 dtManager.SendMessage(msgModel) 那么 dtManager.SendMessage 方法要求什么样的参数?
stevenjin 2017-12-02
  • 打赏
  • 举报
回复
也不是转换什么,就是封装了一个类。这个类会按照官方指定的json格式发送消息。 测试时,发送消息成功了,但并没有将标题等显示出来,说明封装有误。 其实也不用考虑那么多,我就想知道像下面这个两层的json,用C#怎么去写:
 "oa": {
        "message_url": "http://dingtalk.com",
        "head": {
            "bgcolor": "FFBBBBBB",
            "text": "头部标题"
        }
      
血战31天 2017-12-02
  • 打赏
  • 举报
回复
转换失败,报什么错误?
stevenjin 2017-12-02
  • 打赏
  • 举报
回复
现在碰到这个两层的,头大
stevenjin 2017-12-02
  • 打赏
  • 举报
回复
不好意思,那个可以不管
  • 打赏
  • 举报
回复
msgtype 对应转换什么?

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧