【问题标题】:Insert in DB a JSON object from a URL从 URL 向 DB 中插入 JSON 对象
【发布时间】:2019-11-27 10:12:17
【问题描述】:

我是 REST API 世界的新手。我解释了我的需求:在一个特定的 URL 处,我有一个原始 JSON 文本,我希望我的应用程序获取此文本,然后作为我之前通过 EF 创建的模型插入到数据库中。 C# NET-CORE 2.2。

如果我不够清楚,请随时向我询问更多详细信息。

提前致谢!

编辑: 很抱歉,如果不清楚,我将提供更多详细信息: 实际上,我有一个从 url 下载的 JSON 字符串。我用以下代码做到了:

    var client = new WebClient();
    var jsonFull = client.DownloadString(string.Format("https://url"));

一切正常。现在,我只需要从这个字符串中提取 JSON 的一小部分,所以我这样做了:

     using var jsonDoc = JsonDocument.Parse(jsonFull);
     var jsonParsed = jsonDoc.RootElement;
     var myCV = jsonParsed.GetProperty("cv");

CVE 是这个 JSON 的一个对象,我成功地接受了它。 在这个对象里面,还有一个叫 CV_data,所以我把这个提取出来:

     var myCVLE = myCV.GetProperty("CV_data_meta");

结果是一个带内部的变量

     ValueKind = Object : "{
      "ID": "CV-2019",
      "ASS": "cv@ms.org"
     }"

现在,我有这样的课程

     public class CV_data_meta
     {
     [JsonPropertyName ("ID")]
     public string ID { get; set; }
     [JsonPropertyName("ASS")]
     public string ASS { get; set; }
     }

问题是:如何将值放在类 CV_data_meta 的 var myCVLE 中? 我试过了

     var myCVClass = JsonSerializer.Deserialize<CV_data_meta>(myCVLE);

但是我得到一个错误。 注意:我无法将所有字符串JSON反序列化为一个对象,因为有很多我不需要的信息。

提前谢谢大家!

【问题讨论】:

  • 你尝试了什么?你的问题到底是什么?你能提供一个最小的例子来说明你做了什么吗?

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


【解决方案1】:

我从你的问题中了解到,如下:

您首先需要创建 API URL 将返回的 JSON 对象映射(类)。

然后像这样使用 API url:

var client = new WebClient();
   var reply =
      client.DownloadString(
         string.Format("https://www.yourapi.com/yourpath?yourkey={0}", yourkey));

使用映射类接收和映射对象

var yourvar = JsonConvert.DeserializeObject<yourclass>(reply);

现在您已将 API 返回映射到应用程序中的类,您可以使用它做任何您想做的事情,包括保存到数据库。

【讨论】:

    猜你喜欢
    • 2020-06-13
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    相关资源
    最近更新 更多