当来自CreateErrorResponse时,HttpResponseMessage.Content.ReadAsStringAsync不反序列化JSON

 手机用户2602938575 发布于 2023-01-26 02:42

如果我从我自己的主题webapi返回

Request.CreateResponse(HttpStatusCode.OK, "YAY");

一切都很好..所以我可以这样读:

var responseStr = await Client.Content.ReadAsAsync();
and then make something like "MessageBox.Show(responseStr);

如果我回来

Request.CreateErrorResponse(HttpStatusCode.NotFound, "something went wrong!");

我用同样的方式读出来,或者用(不管怎么样):

Client.Content.ReadAsStringAsync();

该字符串未反序列化,并在尝试解析/读取为字符串时出错.

如果我把它作为对象阅读..它没关系...但我无法执行object.ToString(); 我收到错误..

为什么?以及如何解决它?

1 个回答
  • 我发现在返回的JSON中有额外的'\'和'"'.
    所以在我序列化回一个对象之前,我需要删除额外的字符.

    例如

    string jsonString = httpResponseMessage.Content.ReadAsStringAsync()
                                                   .Result
                                                   .Replace("\\", "")
                                                   .Trim(new char[1] { '"' });
    
    List<VwAisItemMaster> vwAisItemMasterList = JsonConvert.DeserializeObject<List<VwAisItemMaster>>(jsonString);
    

    2023-01-26 10:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有