Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中从JSON中提取值#_C#_Json - Fatal编程技术网

C# 在C中从JSON中提取值#

C# 在C中从JSON中提取值#,c#,json,C#,Json,我正在开发一个应用程序,它可以检测车牌并向我提供有关车牌的信息。这是通过调用名为“openALPR”的RESTAPI来实现的。 因此,我得到一个JSON字符串,如下所示: { “uuid”:“, “数据类型”:“alpr结果”, “大纪元”:15125543436, “处理时间”:{ “板块”:145.41024780273438, “总计”:147.640999995667 }, “img_高度”:233, “img_宽度”:700, “结果”:[ { “标牌”:“MTF5101”, “信心”

我正在开发一个应用程序,它可以检测车牌并向我提供有关车牌的信息。这是通过调用名为“openALPR”的RESTAPI来实现的。 因此,我得到一个JSON字符串,如下所示:

{
“uuid”:“,
“数据类型”:“alpr结果”,
“大纪元”:15125543436,
“处理时间”:{
“板块”:145.41024780273438,
“总计”:147.640999995667
},
“img_高度”:233,
“img_宽度”:700,
“结果”:[
{
“标牌”:“MTF5101”,
“信心”:94.978622436523438,
“区域置信度”:0,
“车辆区域”:{
“y”:1,
“x”:234,
“高度”:232,
“宽度”:232
},
“区域”:“fr”,
“板块指数”:0,
“处理时间”:193.28457641601563,
“候选人”:[
{
“匹配_模板”:0,
“标牌”:“MTF5101”,
“信心”:94.978622436523438
}
],
“坐标”:[
{
“y”:102,
“x”:289
},
{
“y”:101,
“x”:412
},
{
“y”:126,
“x”:412
},
{
“y”:128,
“x”:289
}
],
“匹配_模板”:0,
“请求的主题”:50
},
{
“铭牌”:“MHV7718”,
“信心”:94.9754638671875,
“区域置信度”:0,
“车辆区域”:{
“y”:0,
“x”:395,
“高度”:233,
“宽度”:233
},
“区域”:“fr”,
“板块指数”:1,
“处理时间”:193.28457641601563,
“候选人”:[
{
“匹配_模板”:0,
“铭牌”:“MHV7718”,
“信心”:94.9754638671875
},
{
“匹配_模板”:0,
“标牌”:“MH7718”,
“信心”:81.55036163300781
},
{
“匹配_模板”:0,
“标牌”:“MHY7718”,
“信心”:81.411224365234375
}
],
“坐标”:[
{
“y”:142,
“x”:475
},
{
“y”:148,
“x”:676
},
{
“y”:184,
“x”:674
},
{
“y”:178,
“x”:475
}
],
“匹配_模板”:0,
“请求的主题”:50
},
{
“铭牌”:“MTG7780”,
“信心”:94.97296142578125,
“区域置信度”:0,
“车辆区域”:{
“y”:1,
“x”:91,
“高度”:232,
“宽度”:232
},
“区域”:“fr”,
“板块指数”:2,
“处理时间”:193.28457641601563,
“候选人”:[
{
“匹配_模板”:0,
“铭牌”:“MTG7780”,
“信心”:94.97296142578125
},
{
“匹配_模板”:0,
“标牌”:“MT7780”,
“信心”:81.548896789550781
},
{
“匹配_模板”:0,
“标牌”:“MT67780”,
“信心”:81.409553527832031
}
],
“坐标”:[
{
“y”:84,
“x”:18
},
{
“y”:96,
“x”:202
},
{
“y”:140,
“x”:201
},
{
“y”:128,
“x”:16
}
],
“匹配_模板”:0,
“请求的主题”:50
}
],
“每月使用的学分”:48,
“版本”:2,
“学分每月总计”:2000,
“错误”:错误,
“感兴趣区域”:[],
“信用成本”:1
}
现在我需要得到每个车牌的坐标。本例中有3个车牌。每个“坐标”键包括四个点(x、y)

如何获得这些C#中的坐标

谢谢你看我的问题

致以最良好的祝愿,
费边·莫尔哈特

首先,为RESTAPI输出创建C#模型类,如下所示:

using System.Net.Http;
using Newtonsoft.Json;

public async Task<LicensePlateInformation> GetLicensePlateInfoFromAPI()
{
   try
   {
    string stringifiedJSONFromAPI = string.Empty;
    LicensePlateInformation plateInfo = new LicensePlateInformation();
    using(HttpClient client = new HttpClient())
    {
       client.DefaultRequestHeaders.Accept.Clear();
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

       HttpResponseMessage msg = await client.GetAsync($"<Insert rest api endpoint here>");

       if(msg.IsSuccessStatusCode)
       {
          stringifiedJSONFromAPI = await msg.Content.ReadAsStringAsync();
          JsonConvert.PopulateObject(stringifiedJSONFromAPI, plateInfo);
       }
       return plateInfo;
    }
   }
   catch(Exception ex)
   {
      throw;
   }
}
using System.Linq;
using System.Collections.Generic;

LicensePlateInformation plateInfo = await GetLicensePlateInfoFromAPI();
List<Coordinate> coOrdinatesList = new List<Coordinate>();
 foreach (var outerItem in plateInfo.results.Select(x => x.coordinates))
 {
       foreach (var innerItem in outerItem)
       {
          coOrdinatesList.Add(innerItem);
       }
 }

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间JSONConversion.Models
{
公共类许可证信息
{
公共字符串uuid{get;set;}
公共字符串数据类型{get;set;}
公共长历元时间{get;set;}
公共处理\u时间处理\u时间{get;set;}
公共整数img_高度{get;set;}
公共整数img_宽度{get;set;}
公共列表结果{get;set;}
公共整数积分\u每月\u使用{get;set;}
公共int版本{get;set;}
公共整数积分\u每月\u总计{get;set;}
公共布尔错误{get;set;}
公共对象[]感兴趣的区域{get;set;}
公共积分成本{get;set;}
}
公共类处理时间
{
公共浮板{get;set;}
公共浮点总数{get;set;}
}
公开课成绩
{
公共字符串板{get;set;}
公共浮动置信度{get;set;}
公共整数区域_置信度{get;set;}
公共车辆\区域车辆\区域{get;set;}
公共字符串区域{get;set;}
公共int板_索引{get;set;}
公共浮点处理时间{get;set;}
公共候选对象[]候选对象{get;set;}
公共列表坐标{get;set;}
公共int匹配_模板{get;set;}
请求的公共int_topn{get;set;}
}
公共类车辆(地区)
{
公共整数y{get;set;}
公共整数x{get;set;}
公共整数高度{get;set;}
公共整数宽度{get;set;}
}
公开课候选人
{
公共int匹配_模板{get;set;}
公共字符串板{get;set;}
公共浮动置信度{get;set;}
}
公共类坐标
{
公共整数y{get;set;}
公共整数x{get;set;}
}
}
之后,通过
using System.Linq;
using System.Collections.Generic;

LicensePlateInformation plateInfo = await GetLicensePlateInfoFromAPI();
List<Coordinate> coOrdinatesList = new List<Coordinate>();
 foreach (var outerItem in plateInfo.results.Select(x => x.coordinates))
 {
       foreach (var innerItem in outerItem)
       {
          coOrdinatesList.Add(innerItem);
       }
 }