C# - 用两个数组反序列化 JSON 字符串?

发布于 2024-11-28 06:32:59 字数 462 浏览 1 评论 0原文

我正在使用 C# 检索 JSON 数据。 JSON有两个数组,一个是出租汽车,一个是公司汽车,然后每辆车有两条数据。 JSON 输出类似于以下内容,

{"companycars":[[VIN,LICENSEPLATE],[VIN,LICENSEPLATE],"rentalcars":[[VIN,LICENSEPLATE],[VIN,LICENSEPLATE]]}

我正在使用 JSON.net,并且可以处理一个数组以反序列化为一个简单的字符串字典,例如

Dictionary<string, string> allCars = JsonConvert.DeserializeObject<Dictionary<string, string>>(myCars);

但同一结果中的两个数组的示例是什么?我基本上想得到两个字典(字符串)对象。

I am using C# to retrieve JSON data. The JSON has two arrays, one for rental cars and one for company cars, and then each car has two pieces of data. JSON output is like the follwing

{"companycars":[[VIN,LICENSEPLATE],[VIN,LICENSEPLATE],"rentalcars":[[VIN,LICENSEPLATE],[VIN,LICENSEPLATE]]}

I am using JSON.net and can handle one array to deserialize to a simple string Dictionary with something like

Dictionary<string, string> allCars = JsonConvert.DeserializeObject<Dictionary<string, string>>(myCars);

But what is the example for two arrays within the same result? I want to basically end up with two dictionary (string) objects.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紅太極 2024-12-05 06:32:59

尝试创建一个类来存储反序列化 JSON 的结果,如下所示:

public class Cars
{
    public List<string[]> Companycars { get; set; }
    public List<string[]> Rentalcars { get; set; }

    public Cars()
    {
        Rentalcars = new List<string[]>();
        Companycars = new List<string[]>();
    }
}

string myCars = "{\"companycars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]],\"rentalcars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]]}";
Cars allCars = JsonConvert.DeserializeObject<Cars>(myCars);

希望这会有所帮助。


编辑:

如果您不需要传递对象,您可以将结果存储到匿名类型中:

var allCars = new
{
    CompanyCars = new List<string[]>(),
    RentalCars = new List<string[]>()
};

string myCars = "{\"companycars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]],\"rentalcars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]]}";

allCars = JsonConvert.DeserializeAnonymousType(myCars, allCars);

Try creating a class to store the result of your de serialised JSON like so:

public class Cars
{
    public List<string[]> Companycars { get; set; }
    public List<string[]> Rentalcars { get; set; }

    public Cars()
    {
        Rentalcars = new List<string[]>();
        Companycars = new List<string[]>();
    }
}

string myCars = "{\"companycars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]],\"rentalcars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]]}";
Cars allCars = JsonConvert.DeserializeObject<Cars>(myCars);

Hope this helps.


Edit:

If you don't need to pass the object around you could store the result into an anonymous type:

var allCars = new
{
    CompanyCars = new List<string[]>(),
    RentalCars = new List<string[]>()
};

string myCars = "{\"companycars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]],\"rentalcars\":[[\"VIN\",\"LICENSEPLATE\"],[\"VIN\",\"LICENSEPLATE\"]]}";

allCars = JsonConvert.DeserializeAnonymousType(myCars, allCars);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文