Сейчас я выполняю некоторые операции синтаксического анализа при весенней загрузке: 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 данные очень сложны. Так что я сейчас очень растерялся ... Мне нужна твоя помощь.