JsonConvert 无法反序列化整数

Posted

技术标签:

【中文标题】JsonConvert 无法反序列化整数【英文标题】:JsonConvert failing to deserialize integer 【发布时间】:2018-09-25 06:26:37 【问题描述】:

我正在尝试在 Xamarin 表单(跨平台)中使用 python 代码,所以我尝试使用 flask-restful(python API)来构建 Web 服务器并从 Xamarin 应用程序调用它,我不使用数据库我只想返回一个现在整数,但在Newtonsoft.Json.JsonConvert.DeserializeObject <int>(jasonstring); 失败了 这就是我在 xamarin 中使用 rest API 的方式

 HttpClient client = new HttpClient();
        var response = await client.GetAsync("http://localhost:50024/");
        if (response.StatusCode == System.Net.HttpStatusCode.OK)
        
            var jasonstring= await response.Content.ReadAsStringAsync();
             var type = Newtonsoft.Json.JsonConvert.DeserializeObject <int>(jasonstring);


            await DisplayAlert("Result", type.ToString(), "OK");
        

这就是 contentstring 的内容:

<!DOCTYPE html>
<html lang="en" xlmns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8"/>
  <title></title>

</head>
<body>
  <div class="info">
    <h2> 1 <br/></h2>
  </div>
</body>
</html>

我只想显示这个整数 (1)。

【问题讨论】:

您应该检查您的 API。当您发送请求时,它应该是返回部分资源。您的 API 响应似乎不可用。 所以你试图将 XML 反序列化为 JSON,以某种方式假装整个事情是一个整数?然后你真的想知道可能出了什么问题? 这是我的第一个 rest api 我不知道如何返回整数 【参考方案1】:

Newtonsoft Json .Net 用于反序列化以 Json 表示的对象。您正在尝试使用不起作用的 json 反序列化器反序列化 Html (xml)。我建议使用 Html Agility Pack 之类的东西从 h2 块中获取数字

http://html-agility-pack.net/

【讨论】:

以上是关于JsonConvert 无法反序列化整数的主要内容,如果未能解决你的问题,请参考以下文章

C# 无法反序列化这个 json

为啥这个匿名类型不能使用 JsonConvert.DeserializeAnonymousType 正确反序列化?

检测反序列化的对象是不是缺少 Json.NET 中 JsonConvert 类的字段

Newtonsoft.Json.JsonConvert 从同一个类中序列化和反序列化

Newtonsoft.Json.JsonConvert 序列化与反序列化

使用 JsonConvert 将 JSON 反序列化为 VB.NET 中的数据表