You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Dynamics 365 Dataverse返回JSON中提取字段值的最简方法

你之前取值失败的核心原因是OData返回结构中value字段是数组类型,而非单个对象,因此不能直接通过jsonObject["value"]["ItemNumber"]取值,需要先指定数组下标取对应元素再读取字段。

实现代码(基于Newtonsoft.Json)

首先确保引入命名空间:
using Newtonsoft.Json.Linq;

单条取值示例

JObject jsonObj = JObject.Parse(jsonResult);
// 注意value是数组,先取下标为0的第一个元素,再读取ItemNumber字段
string itemNumber = jsonObj["value"][0]["ItemNumber"]?.ToString();

遍历所有value元素取值示例

如果value数组可能包含多条数据,可通过遍历获取所有ItemNumber:

JObject jsonObj = JObject.Parse(jsonResult);
JArray valueArr = jsonObj["value"] as JArray;
if (valueArr != null)
{
    foreach (JToken item in valueArr)
    {
        string currentItemNum = item["ItemNumber"]?.ToString();
        // 处理对应值逻辑
    }
}

dynamic语法适配

你之前尝试的dynamic写法同样可以实现,仅需补充数组下标即可:

dynamic dyObj = JObject.Parse(jsonResult);
string itemNumber = dyObj.value[0].ItemNumber;

说明:

  • 上述实现完全不需要定义匹配JSON结构的实体类,也不需要复杂泛型配置,符合你要的简单嵌套索引取值需求
  • VS调试窗口显示的复杂层级是JToken类型的内部封装结构,不影响正常取值,无需关注

内容的提问来源于stack exchange,提问作者HerrimanCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:21:01