我是使用JSON数据的新手。
我正在从Web服务读取数据。发送回的查询数据如下:
[["B02001_001E","NAME","state"], ["4712651","Alabama","01"], ["691189","Alaska","02"], ["6246816","Arizona","04"], ["18511620","Florida","12"], ["9468815","Georgia","13"], ["1333591","Hawaii","15"], ["1526797","Idaho","16"], ["3762322","Puerto Rico","72"]]
有没有一种方法可以反序列化此数据,而无需先定义对象是什么样就可以生成基础对象?在上面的示例中,对象由第一行定义:
["B02001_001E","NAME","state"],
通常,Web服务将返回格式化为二维JSON数组的查询数据,其中第一行提供列名,后续行提供数据值。
您可以非常轻松地反序列化。C#中的数据结构就是List<string[]>这样,您可以这样做。
List<string[]>
List<string[]> data = JsonConvert.DeserializeObject<List<string[]>>(jsonString);
上面的代码假设您正在使用json.NET。
编辑:请注意json技术上是字符串数组的数组。我更喜欢使用List<string[]>自己的声明,因为它更加直观。它不会对json.NET造成任何问题,如果您希望它是字符串数组的数组,则需要将类型更改为(我认为),string[][]但是在C#中有一些带有锯齿状和2D数组的有趣小陷阱,我真的不知道,所以我就不用在这里处理它。
string[][]