首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对C#中的Jarray进行计数

对C#中的Jarray进行计数
EN

Stack Overflow用户
提问于 2021-06-03 03:15:45
回答 2查看 86关注 0票数 0

我需要计算在httptrigger function.Data中请求正文中的数据是作为对象类型出现的。我正在反序列化reqd主体,如图所示,below.Below是我在req.body中获得的对象类型数据。

代码语言:javascript
运行
复制
{
  "Response": [
    {
      "id": "1",
      "name": "Warburtons Medium Sliced Soft White Bread 400g",
      "description": "Warburtons Medium Sliced White 400G",
      "brand": "Warburtons",
      "ean": "123",
      "mediaStorageKey": "b",
      "maxQuantity": 6,
      "price": 0.95,
      "size": 400,
      "sizeUnits": "Grams"
    },
    {
      "id": "a",
      "name": "Co-op Orvieto Classico 75cl",
      "description": "Co-op Orvieto Classico 75CL",
      "brand": "Co-op",
      "ean": "489",
      "mediaStorageKey": "c",
      "maxQuantity": 6,
      "price": 5.5,
      "size": 75,
      "sizeUnits": "Centilitres"
    },
    {
      "id": "kl",
      "name": "Co Op Garden Peas in Water 290g",
      "description": "Co-op Garden Peas 290G",
      "brand": "Co Op",
      "ean": "678",
      "mediaStorageKey": "f",
      "maxQuantity": 6,
      "price": 0.45,
      "size": 175,
      "sizeUnits": "Grams"
    }
  ]
}
代码语言:javascript
运行
复制
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic body = JsonConvert.DeserializeObject(requestBody);
             
dynamic data = body["Response"];

到目前为止,我得到的数据如下所示。

代码语言:javascript
运行
复制
{[{"id":"1","name":"b"},{"id":"f","name":"j"}]}

但现在我无法计算这些数据,在这种情况下,这些数据是2,因为我必须申请循环。既不是CountCount()也不在这里工作。我得到了下面的错误。

Newtonsoft.Json.Linq.JValue不包含Count的定义

EN

回答 2

Stack Overflow用户

发布于 2021-06-03 03:22:02

使用idname这两个字段创建一个类

代码语言:javascript
运行
复制
public class Item {
  public Int Id {get; set;}
  public String Name {get; set;}
}

并为反序列化的值指定类型:

代码语言:javascript
运行
复制
dynamic body = JsonConvert.DeserializeObject(requestBody);
var rows = JsonConvert.DeserializeObject<List<Item>>(body["Response"]);

现在您可以使用rows.Count();

票数 1
EN

Stack Overflow用户

发布于 2021-06-03 16:00:21

如果您只需要知道Response集合中条目的数量,那么只需使用JObjectJArray就可以了

代码语言:javascript
运行
复制
string rawJson = ...;
JObject semiParsedJson = JObject.Parse(rawJson);
JArray entries = (JArray)semiParsedJson["Response"];
int count = entries.Count;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67811196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档