【问题标题】:API call JSON File and create DatabaseAPI 调用 JSON 文件并创建数据库
【发布时间】:2016-04-18 23:40:24
【问题描述】:

我想知道如何基于 JSON 文件创建数据库。我正在使用的文件是:

JSON file

我使用的是 Visual Studio 2015 和 MSSQL 2012。我使用的一些包含选项是带有 MVC 和 WEB API 模板的实体框架。我想使用 LINQ,但不知道如何实现。我所知道的是如何建立 SQL 连接并创建数据库和表以及存储信息。使用 SQLcommands 函数。

问题:

我想知道如何使用 jquery(来自 data.gov)进行 API 调用以获取 JSON 文件并使用上面提供的 JSON 文件中的必要表创建数据库模式。然后使用 LINQ 创建数据库。或

如果我将 JSON 文件作为我的项目的资源并创建数据库架构和表,我将如何使用 LINQ 正确解析该数据?

有没有办法直观地查看 JSON 文件有哪些类型的表和列,比如很酷的软件之类的?

从那里,我将能够以第 3 范式(如果还没有的话)将相同的 JSON 文件重新填充到更好的数据库设计中。

结论:

如前所述,我正在使用具有 MVC 功能的实体框架,我将专门为具有基本 CRUD 功能的数据自定义代码。 如果我不清楚或这个问题不相关,请发表评论。

【问题讨论】:

  • 这是标准化的 JSON 格式吗?我以前从未见过这样的东西。

标签: c# sql-server json entity-framework linq


【解决方案1】:

很多问题。
所以这里有一些的答案:

进行 API 调用:
(read about data.gov's API)
我不熟悉 JQuery (their docs),但我知道您可以使用 C# 中的 WebClientHttpClient 来做到这一点
示例:

var Client = new HttpClient();
string request;
try
{
    using (Client)
    {
        request = await Client.GetStringAsync(new Uri(url));
    }
}
catch (Exception)
{
    request = null;
}

return request;

网址将是 API 调用,例如:
http://catalog.data.gov/api/3/?query=blahblah&API_KEY

https://data.cityofnewyork.us/api/views/5b3a-rs48/rows.json?accessType=DOWNLOAD
返回的请求将是您的 JSON 字符串。

解析 JSON:
关于从 JSON 解析为 C# 对象,可以使用Newtonsoft's Json.NET,可以在 Nuget 中获取。
但是,这要求您拥有一个包含 JSON 字符串包含的所有属性的类。
示例:

var myJsonObject = JsonConvert.DeserializeObject<MyCustomJsonClass>(json);

根据提供的 JSON 创建类:
您可以通过 3 种方式或更多..
1.使用Json UtilsJson2Csharp或复制JSON字符串并进入Visual Studio并使用编辑->选择性粘贴->将JSON粘贴为类
2.自己写
3. 在您的项目中使用 Json Utils source code

可以使用基于 JSON 字符串 (Guide) 的新类在 Entity Framework 中创建表(并使用 LINQ)

这很不清楚:
有没有办法直观地查看 JSON 文件有哪些类型的表和列,比如很酷的软件之类的?
如果您的意思是在 SQL 数据库中创建表并输入值之后,是的。您应该能够使用 Visual Studio。

【讨论】:

  • 非常感谢西塞罗。我会尝试您的建议并更新您的进度。
  • 我一直在处理您的帖子,到目前为止一切正常,再次感谢。我还没有发现你的答案有问题,所以我把它标记为答案。
  • @Roys 谢谢,不客气。我很高兴它奏效了。祝你的项目好运!
  • 出于好奇,但在 MVC(实体框架)设计中,哪里是放置 API 调用代码的最佳位置?我只是把它放在一个空的创建控制器中。
  • @Roys 使用控制器执行 API 调用并使用控制器内部的 EF database context 将数据保存到数据库。当然,在您将其转换为正确的对象之后。这应该足够了。但这实际上是您认为最有效的问题。
猜你喜欢
  • 1970-01-01
  • 2021-08-27
  • 2018-09-01
  • 2021-11-08
  • 2011-12-12
  • 2023-03-15
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
相关资源
最近更新 更多