【发布时间】:2019-01-22 06:43:33
【问题描述】:
我是新手,如果是重复的问题,我深表歉意。在这一点上,我已经尝试了很多不同的东西,我不确定这样做的正确方法。
我正在尝试编写一个函数来循环遍历 JSON 并获取模型在某些条件下的值(即:qty != null、sector = 1、position = 1。
我还需要计算每个独特模型的出现次数。 任何帮助将不胜感激。
这是JSON 的样子。
[ { "sector": "1", "position": "1", "qty": "1", "model": "SBNHH-1D65C" },
{ "sector": "2", "position": "1", "qty": "1", "model": "" },
{ "sector": "3", "position": "1", "qty": "1", "model": "DC6-48-60-18-8F" },
{ "sector": "1", "position": "2", "qty": "1", "model": "SBNHH-1D65C" },
{ "sector": "2", "position": "2", "qty": "1", "model": "DC6-48-60-18-8F" } ]
public class AntennaItems
{
public AntennaItems[] root { get; set; }
public int sector { get; set; }
public int position { get; set; }
public string qty { get; set; }
public string model { get; set; }
}
string requestBodyString = await new StreamReader(req.Body).ReadToEndAsync();
var newJsonString = @"{root:" + requestBodyString + @"}";
List<string> modelList = new List<string>();
var jsonObj = JsonConvert.DeserializeObject<AntennaItems>(newJsonString);
foreach (var elem in jsonObj.root)
{
modelList.Add(elem.model);
}
return new OkObjectResult($"modelList = {modelList}");
目前我收到了这样的回复:
modelList = System.Collections.Generic.List`1[System.String]
【问题讨论】:
-
你能用自定义转换器注释你的模型,然后使用
JsonConverter.CanConvert方法吗? -
这一行有什么用 var newJsonString = @"{root:" + requestBodyString + @"}";,
-
谢谢约翰尼。我会研究自定义转换器
-
Kiren - 最初,当 json 是字符串时,我使用 root 作为在 root 级别读取 id/values 的一种方式。它可能不再需要了。