WebAPI接口返回ArrayList包含Dictionary对象正确解析

一、问题提出

为了减少流量,将key-value(键值对)直接输出到Dictionary<string, string>,接口返回结果如下:

WebAPI接口返回ArrayList包含Dictionary对象正确解析

其中{}里面内容如下:

WebAPI接口返回ArrayList包含Dictionary对象正确解析

WebAPI接口返回ArrayList包含Dictionary对象正确解析

上图显示600是键,4545ra是值。查看data的其他选项,键是不同的。

结论是,从Dictionary<string, string>返回的键不确定。如何输出data项中的键值呢?

二、API接口实现

API接口实现如下:

WebAPI接口返回ArrayList包含Dictionary对象正确解析

使用的是abp框架,api访问地址为:/api/Collection/ArrayList

三、正确解析方法

由于键不确定,所以不能通过Object.KeyName的方式获取属性,经过实践通过for循环对象来解析:

WebAPI接口返回ArrayList包含Dictionary对象正确解析

步骤讲解

(1)循环data,获取Dictionary<string, string>对象item

(2)循环item,对item进行解析,其中j表示键,item[j]表示值

测试输出结果如下:

WebAPI接口返回ArrayList包含Dictionary对象正确解析

完全可以找到key与value。