【问题标题】:How to extract a dataset from Json where the element is fluid如何从元素流动的Json中提取数据集
【发布时间】:2021-04-13 13:46:13
【问题描述】:

我的 WebApi 中有一个 Json 对象。该结构可以采用任何形式。我唯一确定的是,在该结构中的某处(可能是顶级节点,也可能是子节点)我将拥有一个由以下组成的节点:

"data": {
        "mop": "1012346354462",
        "fuelType": "E",
        "Id": "1029dd56-10b1-46cb-9966-3c37e057a470",
        "Status": "SecuredActive",
        "StatusFromDate": "2020-11-20T17:00:00.000Z",
        "ActiveDate": "2020-11-21T00:00:00.000Z",
        "GeneratedReference": "1012346354462_1"
      },

任何人都可以帮助我如何轻松地从 JSon 对象中提取这些数据。我有一个映射到这些属性的类,但在我可以使用它之前,我需要将它从 JSON 的其余部分中挑选出来。我正在使用 C#

【问题讨论】:

  • 假设您使用 System.Text.Json:您可以使用this Q&A 中的扩展名获取名为dataJsonElement,然后使用this Q&A 将其反序列化为一个对象

标签: c# json


【解决方案1】:

在玩了很多之后,我终于找到了解决方案,所以我想我会发布以防其他人遇到类似问题。

JObject result = JObject.Parse(Request.ToString());

var clientarray = result["events"].Value<JArray>();

var blockIwant = clientarray.Children<JObject>().Select(x => x.Children<JProperty>().Where(y => y.Name == "data").First());

【讨论】:

    【解决方案2】:

    使用 JSON Convert 反序列化对象。

    var Data = JsonConvert.DeserializeObject<dynamic>(data);
    

    然后您可以使用 Data 对象进行访问。 例如:Console.WriteLine((String)Data.data.fuelTypereturn);

    答案为“E”

    【讨论】:

    • 这行不通。例如,如果我上面的示例包含在另一个元素中,则会出现 'object' does not contain a definition for 'data' 错误
    猜你喜欢
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    相关资源
    最近更新 更多