Как сделать `@ class` в JOLT - PullRequest
       13

Как сделать `@ class` в JOLT

1 голос
/ 19 сентября 2019

Я использую библиотеку преобразования JSON Java JOLT и хочу знать, как выплевывать элемент с ключом @class.Поскольку '@' является подстановочным знаком, он пытается интерпретировать символ вместо вывода его в виде строки.

Мне нужно указать класс java для правильного отображения Джексона.

Iхочу сделать что-то вроде:

"locations": {
                "*": {
                    "#location": "tempLocations[&1].riskItemType",
                    "#com.object.beans.element.Location": "tempLocations[&1].@class",`

Так будет выплевывать что-то вроде:

{"@class": "com.object.beans.element.location"

1 Ответ

0 голосов
/ 19 сентября 2019

Из json-ld-escaping онлайн-пример:

Примечание. Чтобы избежать специальных символов Shiftr, необходимо использовать две обратные косые черты

Пример:

[
  {
    "operation": "shift",
    "spec": {
      // In this example, we want to change some of the LHS keys in this Json document.
      // To accomplish this we escape the leading '@' chars both as spec matches (left hand side)
      //  and as output paths (right hand side).
      //
      // Note in order to escape Shiftr special chars, you have to use two backslashes,
      //  because Java.
      // Also, all other Shiftr special chars should be escapable: . @ $ & \ [  ]
      "\\@context": {
        "name": "&1.Name",
        "ingredient": "&1.Inputs",
        "yield": "\\@context.Makes",
        // pass the rest thru
        "*": "&1.&"
      },
      "name": "Name",
      "ingredient": "Inputs",
      "yield": "Makes",
      "*": "&"
    }
  }
]
...