【发布时间】:2020-03-19 10:33:52
【问题描述】:
我目前正在尝试使用 C# 将图像提交到我的自定义视觉预测 API。我是 C# 新手,在遵循 Microsoft Azure 网站 (https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/use-prediction-api#next-steps) 上提供的教程时遇到了一些问题。
本教程以程序使用以下代码返回 JSON 格式的字符串结束:
byte[] byteData = GetImageAsByteArray(imageFilePath);
using (var content = new ByteArrayContent(byteData))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response = await client.PostAsync(url, content);
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
以输出为例:
{
"Id": "7796df8e-acbc-45fc-90b4-1b0c81b73639",
"Project": "8622c779-471c-4b6e-842c-67a11deffd7b",
"Iteration": "59ec199d-f3fb-443a-b708-4bca79e1b7f7",
"Created": "2019-03-20T16:47:31.322Z",
"Predictions": [
{
"TagId": "d9cb3fa5-1ff3-4e98-8d47-2ef42d7fb373",
"TagName": "cat",
"Probability": 1
},
{
"TagId": "9a8d63fb-b6ed-4462-bcff-77ff72084d99",
"TagName": "dog",
"Probability": 0.1087869
}
]
}
是否可以更改代码以使其仅返回数组的预测部分?我知道会有一个解决方案,但正如我之前提到的,我对 C# 非常陌生,以前从未使用过 JSON,而且我还没有设法在网上找到任何东西来帮助解决我的问题 - 但如果有人已经有,请告诉我!
希望你能帮我解决这个问题!
谢谢,
【问题讨论】:
-
您必须修改服务器代码。如果您的客户端代码是 C#,为什么不从反序列化的 JSON 响应中提取
Predictions值? -
创建表示json结构的类,将json解析为该类的q对象,并返回该对象的预测属性。使用 NewtonSoft.Json 将 json 解析为类对象。
-
在这方面有更多的背景信息会很有帮助。大概你要对包含
predictions的字符串做些什么?一旦你有了它,你打算用那个字符串做什么?您是否打算解析它以提取更多信息?根据总体目标,答案可能会发生变化。
标签: c# json api microsoft-custom-vision