XPath Selector с условным вычислением по значениям JSON - PullRequest
0 голосов
/ 02 января 2019

Есть ли способ определить селектор XPath, который использует условную работу с несколькими значениями из JSON, из которого я выбираю?

Рассмотрим следующий пример JSON:

{
    "values": [
        //previous entries
        {
            "value" : "50",
            "date" : "29-11-2018"
        },      {
            "value" : "100",
            "date" : "30-11-2018"
        },      {
            "value" : "150",
            "date" : "1-12-2018"
        },
        //following entries
    ]
}

Скажем, я хотел выбрать только значение для последнего дня любого месяца (для примера проигнорируйте декабрь-январь). Моя идея состоит в том, чтобы выбрать значение, если месяц-месяц t1 - месяц-месяц t0> 0

Существует ли синтаксис для вычисления этого условия с помощью XPath?

1 Ответ

0 голосов
/ 02 января 2019

По этой ссылке XPath является

[...] языком для адресации частей XML-документа, предназначенным для использования как XSLT, так и XPointer.

Но вы хотите обратиться к формату JSON ...
К счастью, есть библиотека C#, реализующая вариант XPath на CodeProject: JUST -JSON Under Simple Transformation , версия XSLT для JSON, которая, конечно же, включает в себя функциональность XPath.

JUST означает JSON Under Simple Transformation.XSLT - очень популярный способ преобразования документов XML с использованиемпростой язык преобразования.
В настоящее время все больше и больше приложений используют JSON в качестве формата данных, поскольку он намного проще и менее объемен, чем XML.
Однако не существует простого способа преобразования документов JSON.
Я создал библиотеку в .NET, которая позволяет преобразовывать документы JSON с использованием очень простого языка преобразования.
Это попытка создать XSLПараллель T для JSON.

Итак, часть этого пакета реализует функциональность XPath-1.0 (?).
Изолируйте эту часть или используйте весь пакет.


Моя идея состоит в том, чтобы выбрать значение if month-in-date t1 - month-in-date t0 > 0

Подход к (частичному) решению для этого может выглядеть следующим образом (я не смог проверить и закончить это, но вы должныполучить представление.):

{
  "result": { "#ifcondition(#valueof($.values.date),condition,#valueof($.values.value),fail)" }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...