dynamic类的使用。
具体使用步骤:
json字符串:
strKeyPwd=%E2%80%9C1%E2%80%9D&strJsonData={%22deviceCode%22:0,%22deviceId%22:%221%22,%22devicePosition%22:0,
%22Points%22:[{%22IN1%22:0,%22IN1Date%22:%222018-07-31%2013:51:21%22},{%22IN2%22:1,%22IN2Date%22:%222018-07-31%2013:51:21%22},{%22IN3%22:1,%22IN3Date%22:%222018-07-
31%2013:51:21%22},{%22IN4%22:1,%22IN4Date%22:%222018-07-31%2013:51:21%22}]}
后台代码:
第一步:dynamic json = Newtonsoft.Json.Linq.JToken.Parse(strJsonData) as dynamic;//json字符串转成动态类型获取到一级字符串
string deviceCode=json.deviceCode;
第二步:dynamic s=json.Points; //将二级的json字符串转成动态类型,这样就可以循环去出Poins值底下的集合
第三步:string a = s.ToString();//将dynamic类型的值转成字符串进行过滤
PointsItem model=new PointsItem();//新建一个实体类
if (a.IndexOf("IN1") > -1)
{
int IN1 =0;
int IN2 = 0;
int IN3 = 0;
int IN4 = 0;
string IN1Date = "";
string IN2Date = "";
string IN3Date = "";
string IN4Date = "";
int i=0;
foreach (var item in s)
{
i++;
if (i == 1)
{
IN1 = item.IN1;
IN1Date = item.IN1Date;
}
if (i == 2)
{
IN2 = item.IN2;
IN2Date = item.IN2Date;
}
if (i == 3)
{
IN3 = item.IN3;
IN3Date = item.IN3Date;
}
if (i == 4)
{
IN4 = item.IN4;
IN4Date = item.IN4Date;
}
}
if (IN4 == 1)
{
model.INs = 40;
model.INsDate = IN4Date;
return model;
}
else if (IN3 == 1)
{
model.INs = 30;
model.INsDate = IN3Date;
return model;
}
else if (IN2 == 1)
{
model.INs = 20;
model.INsDate = IN2Date;
return model;
}
else if (IN1 == 1)
{
model.INs = 10;
model.INsDate = IN1Date;
return model;
}