【问题标题】:Selector For JSON Response ContentJSON 响应内容的选择器
【发布时间】:2021-09-20 17:16:02
【问题描述】:

我似乎无法为此 json 结果找到正确的选择器。

{
    "response": {
        "1017": {
            "total": {
                "inStock": 1,
                "onHand": 1,
                "allocated": 0,
                "inTransit": 0
            },
            "warehouses": {
                "3": {
                    "byLocation": {
                        "6": {
                            "inStock": 1,
                            "onHand": 1,
                            "allocated": 0,
                            "inTransit": 0
                        }
                    },
                    "inStock": 1,
                    "onHand": 1,
                    "allocated": 0,
                    "inTransit": 0
                }
            }
        }
    }
}

我想要得到的是 byLocation > 6 > onHand 值。

我认为这会起作用,但没有返回值:

JObject o = JObject.Parse(response.Content);

QOH = o.SelectToken("response[0].1017[0].warehouses[0].3[0].byLocation[0].6[0].onHand").ToString();

非常感谢任何帮助。

【问题讨论】:

  • @ChristophLütjen 你就是男人!拯救了我的一天!
  • @ChristophLütjen 该网站不安全。它重定向到多个恶意站点。请提供安全工具的链接
  • @AkshayGaonkar - 虽然我对 jsonselector.com 了解不多,但除了隐私政策和本网站上的 github 项目外,我看不到任何链接。您能否提供一些细节是什么让您认为该网站链接到恶意网站? (或者如果你知道更好的选择,你可以分享链接?)
  • @ChristophLütjen 使用jsonpathfinder.com。这是https

标签: c# json linq selector


【解决方案1】:

试试这个

var QOH = o.SelectToken("response.1017.warehouses.3.byLocation.6.onHand").ToString(); 

结果

1

【讨论】:

    【解决方案2】:

    您可以querying JSON with SelectToken 也没有指定完整路径

    o.SelectToken("$..byLocation..onHand")?.ToString()
    
    o.SelectToken("$..byLocation.*.onHand")?.ToString()
    
    o.SelectToken("$..byLocation.6.onHand")?.ToString()
    
    o.SelectToken("$..warehouses.*.byLocation.*.onHand")?.ToString()
    

    【讨论】:

      猜你喜欢
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 2017-11-11
      • 2018-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多