gpt4 book ai didi

c# - 从 VAT eu 解析一个 json

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:37 24 4
gpt4 key购买 nike

我有这个 json:

"rates": {
"AT": {
"country": "Austria",
"standard_rate": 20.00,
"reduced_rate": 10.00,
"reduced_rate_alt": 13.00,
"super_reduced_rate": false,
"parking_rate": 12.00
},
"BE": {
...

我尝试将这个 json 映射到这个类,但我遇到了一个问题,因为 json 的结构方式是一个标签是一个对象。我需要成为一个属性

public class Rate{
public string Tag { get; set; }
public string country { get; set; }
public double standard_rate { get; set; }
public double reduced_rate { get; set; }
public double reduced_rate_alt { get; set; }
public bool super_reduced_rate { get; set; }
public double parking_rate { get; set; }
}

我如何将其映射到单个对象中?提前致谢

最佳答案

如果您查看发布的(部分)JSON,您想要引用的内容是 Tag与其余数据处于不同的级别。忽略大括号并查看缩进。

它似乎打算用作字典,并且很容易以这种方式反序列化。

{
"rates": {
"AT": {
"country": "Austria",
"standard_rate": 20.00,
"reduced_rate": 10.00,
"reduced_rate_alt": 13.00,
"super_reduced_rate": false,
"parking_rate": 12.00
},
"BE": {
"country": "Belguim",
...
}
}
}

类:

public class VRates
{
public Dictionary<string, VRate> rates { get; set; }
}

public class VRate
{
public string country { get; set; }
public float standard_rate { get; set; }
public float reduced_rate { get; set; }
public float reduced_rate_alt { get; set; }
public bool super_reduced_rate { get; set; }
public float parking_rate { get; set; }
}

使用它的代码(使用 JSON.NET):

string jstr = ... json from where ever
VRates rates = JsonConvert.DeserializeObject<VRates>(jstr);

您的“标签”将成为方便查找的键。如果你愿意,你可以去掉外部类:

var rates = JsonConvert.DeserializeObject<VRates>(jstr).rates;

foreach (KeyValuePair<string, VRate> kvp in rates)
{
Console.WriteLine("key: {0}, country: {1}", kvp.Key, kvp.Value.country);
}

输出:

key: AT, country: Austria
key: BE, country: Belguim

如果您真的想要费率类中的该代码,您可以将其复制到一个新属性中,然后将字典值集合提取到 List<VRate> 中。或编写一个转换器来复制/移动它。

关于c# - 从 VAT eu 解析一个 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39338090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com