【问题标题】:JSONPath exclude as separate JSONJSONPath 排除为单独的 JSON
【发布时间】:2015-05-19 15:58:00
【问题描述】:

我有一个复杂的 JSON 结构。我不想排除一个部分并在两个桶中获取列表。说一个为“包含”,另一个为“排除”。 下面给出了示例 JSON。

{
"Item": {
    "Items": [{
        "Items": [{
            "category": "fruit",
            "Item": {
                "Items": [{
                    "Text": "Apple"
                },
                {
                    "Text": "Orange"
                },
                {
                    "Text": "Grapes"
                },
                {
                    "Text": "Guava"
                }],
                "Types": ["Value",
                "Value",
                "Value",
                "Value"]
            },
            "Type": "Or"
        },
        {
            "category": "fruit",
            "Item": {
                "Text": "Pineapple"
            },
            "Type": "Value"
        }],
        "Types": ["Constraint",
        "Constraint"]
    },
    {
        "category": "fruit",
        "Item": {
            "Text": "Banana"
        },
        "Type": "Value"
    }],
    "Types": ["Not",
    "Constraint"]
},
"Type": "And"}

这里我们有类别水果,其中 We Apple、Orange、Grapes 和 Guava 用“OR”表示,菠萝用“AND”表示,Banana 用“Not”表示。我试过一次

Item..Items[?(@.category='fruit')]..Text

它返回我

  [   "Banana",   "Apple",   "Orange",   "Grapes",   "Guava", "Pineapple"]

但我希望 List 是

{["Apple",     "Orange",       "Grapes",       "Guava",    "Pineapple"  ]
},{["Banana"]}

有没有办法在 JSON 路径中获得类似结构的东西

【问题讨论】:

  • 一个 D3 巢可能是去这里的方式

标签: javascript json jsonpath


【解决方案1】:

使用 JSONPath 无法做到这一点。

【讨论】:

    【解决方案2】:

    这可能不是您期望的答案,但我认为 JsonPath 不可能。

    引用jayway/JsonPath

    在评估路径时,您需要了解路径何时确定的概念。如果路径包含以下内容,则路径是不确定的:

    • .. - 深度扫描算子
    • ?() - 一个表达式
    • [, (, )] - 多个数组索引

    不定路径总是返回一个列表(由当前的 JsonProvider 表示)。

    因此,您的结果将始终是一个列表。我想,你已经拥有的就是你能得到的最接近的了。

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 2019-08-02
      • 2018-01-31
      • 2014-07-21
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多