Разбор весенней загрузки JsonString для вложенного (внутреннего) класса модели - PullRequest
0 голосов
/ 03 апреля 2020

Сейчас я выполняю некоторые операции синтаксического анализа при весенней загрузке: JsonString для класса модели

Но у меня есть некоторые проблемы. Пожалуйста, смотрите фрагмент кода ниже.

1. Json строка

{
  "id": "8a9bbd0e-07a8-4ecc-b4c3-64d67df98bab",
  "version": "2.0",
  "name": "name1",
  "url": "https://www.naver.com",
  "tests": [{
    "id": "b934005c-c75b-4145-bc23-4311201b7cfc",
    "name": "naverTest",
    "commands": [{
      "id": "e7151e7f-e67c-4e76-b4ef-260ad634547e",
      "comment": "",
      "command": "open",
      "target": "/",
      "targets": [],
      "value": ""
    }, {
      "id": "e25bc532-278c-4edb-aee3-7ee96aef857a",
      "comment": "",
      "command": "setWindowSize",
      "target": "1936x1096",
      "targets": [],
      "value": ""
    }, {
      "id": "accd544b-8483-4e23-9520-e00ce84200c3",
      "comment": "",
      "command": "click",
      "target": "id=query",
      "targets": [
        ["id=query", "id"],
        ["name=query", "name"],
        ["css=#query", "css:finder"],
        ["xpath=//input[@id='query']", "xpath:attributes"],
        ["xpath=//form[@id='sform']/fieldset/span/input", "xpath:idRelative"],
        ["xpath=//span/input", "xpath:position"]
      ],
      "value": ""
    }, {
      "id": "cfa1a809-17ca-4346-85f7-3f5c4013a3f8",
      "comment": "",
      "command": "type",
      "target": "id=query",
      "targets": [
        ["id=query", "id"],
        ["name=query", "name"],
        ["css=#query", "css:finder"],
        ["xpath=//input[@id='query']", "xpath:attributes"],
        ["xpath=//form[@id='sform']/fieldset/span/input", "xpath:idRelative"],
        ["xpath=//span/input", "xpath:position"]
      ],
      "value": "wow"
    }, {
      "id": "dc71d66b-234c-4fce-a65e-d961e11ff87e",
      "comment": "",
      "command": "sendKeys",
      "target": "id=query",
      "targets": [
        ["id=query", "id"],
        ["name=query", "name"],
        ["css=#query", "css:finder"],
        ["xpath=//input[@id='query']", "xpath:attributes"],
        ["xpath=//form[@id='sform']/fieldset/span/input", "xpath:idRelative"],
        ["xpath=//span/input", "xpath:position"]
      ],
      "value": "${KEY_ENTER}"
    }]
  }],
  "suites": [{
    "id": "522afea0-5481-4a65-956f-438588236059",
    "name": "Default Suite",
    "persistSession": false,
    "parallel": false,
    "timeout": 300,
    "tests": ["b934005c-c75b-4145-bc23-4311201b7cfc"]
  }],
  "urls": ["https://www.naver.com/"],
  "plugins": []
}

2. Классы моделей

public class Side {

private String id;
private String version;
private String name;
private String url;
private List<Test> tests;
private List<Suite> suites;
private List<String> urls;
private List<String> plugins;
/** getter, setter **/  

}

public class Test {

private String id;
private String name;
private List<Command> commands;
/** getter, setter **/

} ​​

public class Command {

private String id;
private String comment;
private String target;
private Map<String, String> targets;
private String value;
/** getter, setter **/

}

public class Suite {

private String id;
private String name;
private String persistSession;
private String parallel;
private String timeout;
private List<String> tests;
/** getter, setter **/

}

3. Разбор кода

private Side side = new Side();
side = objectMapper.readValue(jsonString, Side.class);

4. Ошибка

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "command" (class com.ta.model.side.Command), not marked as ignorable (5 known properties: "target", "targets", "id", "comment", "value"])
 at [Source: (String)"{
  "id": "8a9bbd0e-07a8-4ecc-b4c3-64d67df98bab",
  "version": "2.0",
  "name": "asd",
  "url": "https://www.naver.com",
  "tests": [{
    "id": "b934005c-c75b-4145-bc23-4311201b7cfc",
    "name": "naverTest",
    "commands": [{
      "id": "e7151e7f-e67c-4e76-b4ef-260ad634547e",
      "comment": "",
      "command": "open",
      "target": "/",
      "targets": [],
      "value": ""
    }, {
      "id": "e25bc532-278c-4edb-aee3-7ee96aef857a",
      "comment": "",
      "comman"[truncated 1862 chars]; line: 12, column: 19] (through reference chain: com.ta.model.side.Side["tests"]->java.util.ArrayList[0]->com.ta.model.side.Test["commands"]->java.util.ArrayList[0]->com.ta.model.side.Command["command"])

Есть ли ошибки в моем коде синтаксического анализа?

Почему возникает странная ошибка, такая как comman ... (нет 'comman' !!)?

Я не очень хорош в json, и эти json данные очень сложны. Так что я сейчас очень растерялся ... Мне нужна твоя помощь.

...