【问题标题】:How to return Jtoken in JsonResult如何在 JsonResult 中返回 Jtoken
【发布时间】:2021-04-28 20:23:03
【问题描述】:

请告诉我。如何在 JsonResult 中取回这些数据? 2个小时我都想不通。 我的任务: 我需要获取这些数据,将其返回给 JsonResult 并在 ajax 中处理它。任何提示我都会很高兴

public async Task<JsonResult> PostsPartial()
{
    var client = new RestClient($"https://jsonplaceholder.typicode.com/posts");
    var request = new RestRequest(Method.GET);
    IRestResponse response = await client.ExecuteAsync(request);
    var postsData = JsonConvert.DeserializeObject<JToken>(response.Content);

    return Json(postsData);
}

【问题讨论】:

  • 为什么要返回一个 JToken?您在此处显示的代码到底有什么问题?
  • 您使用的是什么版本的 asp.net-core? asp.net-core 3.1 及更高版本使用 system.text.json 而不是 json.net 作为其 JSON 序列化程序。所以你可以 1) 切换到System.Text.Json 进行序列化。 2) 恢复到 Newtonsoft,如Where did IMvcBuilder AddJsonOptions go in .Net Core 3.0? 所示。 3) 编写一个自定义转换器,将 Newtonsoft 转换为 System.Text.Json,如How can I serialize a Newtonsoft JToken to JSON using System.Text.Json? 所示。
  • 尝试在PostsPartial方法中设置断点,然后一步步调试你的代码,检查PostsPartial是否执行,响应数据是否正确?除了尝试使用 F12 开发者控制台工具检查是否有任何错误。

标签: c# asp.net json .net asp.net-core


【解决方案1】:

尝试使用

   await New JsonResult(JObject.FromObject(postsData))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2019-10-19
    • 1970-01-01
    相关资源
    最近更新 更多