在 ASP.NET Core C# 中反序列化未知类型的 JSON

问题描述 投票:0回答:1

我正在编写一个 ASP.NET Core 服务,它现在是一个基本的直通。它应该从另一台服务器接收 JSON 并将其按原样发送给客户端。

假设另一台服务器提供此服务:

[{"id":1,"name":"Sleep","isComplete":false}]

我的直通调用HttpClient.GetStringAsync问题是它返回一个字符串而不是一个对象:

 "[{\"id\":1,\"name\":\"Sleep\",\"isComplete\":false}]"

这不是我需要的。那么如何获得原件呢?我在 HttpClient 中没有看到将返回任意对象的 GetXXX 方法(这将是计划 A)。 我试过 HttpClient.GetAsync 但它不返回 JSON 或者它返回包含所有内容(标题状态等)的 HttpResponseMessage 除了所需的 JSON
计划 B 是将字符串转换为对象,但即使我忽略了花费在它上面的额外周期,我也不知道提前知道对象类型。我试过 Newtonsoft 的

JsonConvert.DeserializeObject<dynamic>

还有

JObject.Parse 

都没有用。我也试过 RegEx.Unescape - 没有骰子。
HttpClient 可能不是适合这个的工具吗?还是我用错了?

c# json asp.net-core dotnet-httpclient
1个回答
0
投票

试试这个

  var jsonString = "[{\"id\":1,\"name\":\"Sleep\",\"isComplete\":false}]";
  
  return Content(jsonString, "application/json");
© www.soinside.com 2019 - 2024. All rights reserved.