JSON, который вы хотите - это отдельный объект, а JSON, который вы получаете, - это массив с одной записью, которая является строкой.Вкратце: вам нужно проанализировать JSON.
var json = (await query.GetNextAsJsonAsync());
return (ActionResult)new OkObjectResult(json);
Первая строка возвращает перечисляемое количество строк, вторая строка возвращает его вызывающей стороне.Вот почему в результате вы получаете массив со строками.
Если вы хотите, чтобы он возвращал JSON, вам потребуется проанализировать строку.Для этого вы можете использовать класс JsonConvert в библиотеке NewtonSoft.Json (поставляется с вашей функцией по умолчанию).Вы можете узнать об этом здесь .
Редактировать после комментария автора:
var jsonStrings = await query.GetNextAsJsonAsync();
var deviceProperties = jsonStrings.Select(JsonConvert.DeserializeObject<DeviceProperty>);
return (ActionResult)new OkObjectResult(deviceProperties);
public class DeviceProperty
{
public string Plant { get; set; }
}