【问题标题】:Nested Json Structure .NET嵌套的 Json 结构 .NET
【发布时间】:2020-04-04 07:22:27
【问题描述】:

我想在我的 .NET 代码中实现以下 JSON 结构,但我似乎无法从我的数据库中正确创建数组 [Attributes]

您如何最好地设置这样的嵌套 Json?

{
    "productid": 0,
    "active": true,
    "activepos": true,
    "title": "Test",
    "sku": "7777766666",
    "deliverystatus": "",
    "moneyprice": "1590.00",
    "moneypriceorg": "0.00",
    "moneypricein": "8.00",
    "moneyofferprice": "0.00",
    "friendly": "This is Friendly",
    "barcode": "",
    "attributes": [ "Casual", "Green" ]
}

这是我的课程,我应该为此单独开设一个课程吗?以及如何加入类来构建嵌套的 JSON?

public class ProductSQL
{
        public string sku { get; set; } 
        public string title { get; set; }
        public string description { get; set; }
        public string moneypricein { get; set; }
        public string moneyprice { get; set; }
        public string ean { get; set; }
        public string [] attributes { get; set; }
}

在我的 SQL 数据库中,我有五列 attribute 1, attribute 2, attribute 3, attribute 4, attribute 5

我假设一个单独的属性类有五列,然后应该连接?

任何关于最佳实践 JSON 构建的建议将不胜感激。这是一个放置请求。

【问题讨论】:

  • “在我的 SQL 数据库中,我有五列” - 总是弹出这样的坏主意。单独的表。说真的,它被称为 RELATIONAL 数据库,而不是“一个文件数据库”。在此处使用关系,否则您将为此付出代价。当人们遇到非关系数据结构的问题时,每隔一周就会出现一次。
  • 我知道这一点,但是考虑如何将它作为一行解析为 json 对象,这是我的问题。我可以拥有世界上所有的关系。但我无法在.net 中解析同一产品的两行。如果您对 json 和使用来自 sql 的数据有任何经验,我将不胜感激。

标签: c# .net json put


【解决方案1】:

最佳实践(仅我个人意见)是在您的 C# 类中包含您在数据库中拥有的所有字段(即您是 SELECTing 的所有字段),而不是将它们收集到一个数组中.

SQL DB 的特点是,一行代表一个数据单元。如果您需要存储与该单元相关的一些数据的列表或数组,则必须为此使用单独的表

因此,根据您的 attribute1attribute2 字段的上下文含义,您应该要么

  • 使用第一个表中的外键创建另一个表(以存储这些属性),或者,
  • 如果所有属性都是固定的并且确实属于每个“单元”并且它们具有简单的单列表示(或复杂的可序列化),那么您的方法可能就足够了。

但是,从您没有命名任何属性的方式来看,我怀疑第二个选项不适合您。

这仍然取决于这些属性的含义,但如果您将它们命名为...1...2 等,则可能是糟糕设计的标志。 p>

如果您试图将一行中的列收集到一个数组中,这是一个糟糕的设计的强烈迹象。

当你遇到糟糕的设计标志时,你应该做的最好的事情就是从逻辑上重新思考你想要什么。

【讨论】:

  • 好建议,我将建立关系模型,然后尝试重新思考如何正确构建嵌套 JSON 查询的设计。感谢您在这里的支持。
  • @Bradley JSON 几乎应该像您的数据已经/将要在数据库中那样结构化
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 2017-04-02
相关资源
最近更新 更多