使用设置的值将 JSON 转换为 C# 内联类

Mat*_*ius 8 c# json unit-testing

我需要IEnumerable<TestCaseData>从设置了值的 JSON 对象生成测试用例(使用)。我在网上找不到任何可以生成设置了值的 C# 类的工具(生成类的很多)。在测试用例中反序列化 Json 会使测试无效(一个人应该只测试代码),所以我做了这个 regex

当所有属性都是相同类型(小数或布尔值)时,它并不完美,但与大多数基本格式良好的 JSON 一起工作得很好,pattern: "([a-zA-Z]?[a-zA-Z0-9].*)" ?: ?((true|false|null)|([\d].*))$1 = $2M但是当有很多类型并且它们混合时替换我被搞砸了。

我敢肯定有人在我之前遇到过这个问题,简而言之,我正在重新发明轮子。

我该怎么做:

{
    "LegalFeeNet": 363.54,
    "LegalFeeVat": 72.708,
    "DiscountNet": 0.0,
    "DiscountVat": 0.0,
    "OtherNet": 12.0,
    "OtherVat": 2.4,
    "DisbursementNet": 220.0,
    "DisbursementVat": 0.0,
    "AmlCheck": null,
    "LegalSubTotal": 363.54,
    "TotalFee": 450.648,
    "Discounts": 0.0,
    "Vat": 75.108,
    "DiscountedPrice": 360.5184,
    "RecommendedRetailPrice": 450.648,
    "SubTotal": 375.54,
    "Name": "Will",
    "IsDiscounted": false,
    "CustomerCount": 3
}
Run Code Online (Sandbox Code Playgroud)

变成这样:

ClassName {
    LegalFeeNet = 363.54M,
    LegalFeeVat = 72.708M,
    DiscountNet = 0.0M,
    DiscountVat = 0.0M,
    OtherNet = 12.0M,
    OtherVat = 2.4M,
    DisbursementNet = 220.0M,
    DisbursementVat = 0.0M,
    AmlCheck = nullM,
    LegalSubTotal = 363.54M,
    TotalFee = 450.648M,
    Discounts = 0.0M,
    Vat = 75.108M,
    DiscountedPrice = 360.5184M,
    RecommendedRetailPrice = 450.648M,
    SubTotal = 375.54M,
    Name = "Will",
    IsDiscounted = false,
    CustomerCount = 3
}
Run Code Online (Sandbox Code Playgroud)

什么最快/最方便的解决方案是生成具有从 JSON 对象设置的属性的 C# 类?

hyb*_*rid 7

我也是在这里寻找相同问题的解决方案。

接受的答案错过了我想要的一些功能,所以最终创建了这个 https://jsontocsharpconverter.web.app/

希望......它可以帮助某人。