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

时间:2011-08-05 15:47:38

标签: c# json deserialization

我正在使用C#来检索JSON数据。 JSON有两个阵列,一个用于租赁汽车,一个用于公司汽车,然后每辆车有两个数据。 JSON输出就像下面的

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

我正在使用JSON.net并且可以处理一个数组以反序列化为类似

的简单字符串Dictionary
Dictionary<string, string> allCars = JsonConvert.DeserializeObject<Dictionary<string, string>>(myCars);

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

1 个答案:

答案 0 :(得分:0)

尝试创建一个类来存储de序列化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);