【问题标题】:Check if JSON contains something C#检查 JSON 是否包含 C#
【发布时间】:2020-01-17 13:18:50
【问题描述】:

基本上,我以 JSON 格式从 Supreme 获取当前商品库存。然后我将它反序列化为对象。我一直在尝试检查对象是否包含所需的项目,并获取它的 id。

【问题讨论】:

  • 如果我们有一个完整的代码 sn-p 以及演示问题的示例数据,我们会更容易为您提供帮助。请edit您的问题包括minimal reproducible example
  • 很难说,但看起来这是一个数组而不是字典。如果它是一个数组,则需要迭代数组。
  • @BJMyers ,发布了完整的代码。运行时出现错误关键字:D
  • @AhmedSoliman 此代码无法将shop_object 转换为IDictionary<string, object>。尝试使用 Console.WriteLine(ex.Message) 而不是 error keyword 来帮助缩小问题范围。
  • @dvo 我得到“指定的演员表无效。”

标签: c# .net object contains


【解决方案1】:

根据从该端点返回的数据,您可能需要更深入地查看,这使用 JObject 的 SelectToken 方法最容易做到。

    var shop_object = JsonConvert.DeserializeObject<JObject>(shop_json);
    Console.WriteLine(shop_object);

    try
    {
        if (shop_object.SelectTokens("$..name").Any(t => t.Value<string>() == DesiredItem))
        {
            Console.WriteLine("\n \n The desired item is in stock");
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("error keyword");
    }

请注意,这使用了对字符串的相等性检查,因此"Reversible Bandana Fleece Jacket " 末尾的空格之类的小细节可能会让您失望。

【讨论】:

  • 将等号更改为 .Contains。效果很好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 2016-03-05
  • 2018-02-13
  • 1970-01-01
相关资源
最近更新 更多