Обычно я делать хорошо с объектом внутри массива сДжексон синтаксического анализа массива внутри массива
models = mapper.readValue(jSONstream, mapper.getTypeFactory()
.constructCollectionType(List.class, Model.class));
Но этот запрос HTTP отправить обратно на меня что-то вроде этого.
Route.JSON
[
[
{
"length":1278.455,
"duration":660,
"legs":[
{
"length":342,
"duration":286.92,
"type":"walk",
"locs":[
{
"coord":{
"x":2548196,
"y":6678528
},
"arrTime":"201510271103",
"depTime":"201510271103",
"name":null
},
{
"coord":{
"x":2548221.7,
"y":6678553.5
},
"arrTime":"201510271103",
"depTime":"201510271103",
"name":"Purotie"
},
{
"coord":{
"x":2548380.4,
"y":6678731.4
},
"arrTime":"201510271107",
"depTime":"201510271107",
"name":null
},
{
"coord":{
"x":2548393.8,
"y":6678721.2
},
"arrTime":"201510271107",
"depTime":"201510271107",
"name":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548426,
"y":6678692
},
"arrTime":"201510271108",
"depTime":"201510271108",
"name":"Takomotie",
"code":"1465104",
"shortCode":"1518",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
}
]
},
{
"length":456,
"duration":60,
"type":"5",
"code":"2550 2",
"locs":[
{
"coord":{
"x":2548426,
"y":6678692
},
"arrTime":"201510271108",
"depTime":"201510271108",
"name":"Takomotie",
"code":"1465104",
"shortCode":"1518",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548768,
"y":6678460
},
"arrTime":"201510271109",
"depTime":"201510271109",
"name":"Valimotie",
"code":"1465102",
"shortCode":"1516",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
}
]
},
{
"length":479,
"duration":366.36,
"type":"walk",
"locs":[
{
"coord":{
"x":2548768,
"y":6678460
},
"arrTime":"201510271109",
"depTime":"201510271109",
"name":"Valimotie",
"code":"1465102",
"shortCode":"1516",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548818.8,
"y":6678448
},
"arrTime":"201510271109",
"depTime":"201510271109",
"name":null
},
{
"coord":{
"x":2548822.7,
"y":6678455.2
},
"arrTime":"201510271110",
"depTime":"201510271110",
"name":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548838.4,
"y":6678446.2
},
"arrTime":"201510271110",
"depTime":"201510271110",
"name":"H\u00f6yl\u00e4\u00e4m\u00f6tie"
},
{
"coord":{
"x":2548945.8,
"y":6678631.6
},
"arrTime":"201510271113",
"depTime":"201510271113",
"name":"Karvaamokuja"
},
{
"coord":{
"x":2549062,
"y":6678638
},
"arrTime":"201510271115",
"depTime":"201510271115",
"name":null
}
]
}
]
}
],
[
{
"length":1278.455,
"duration":660,
"legs":[
{
"length":342,
"duration":286.92,
"type":"walk",
"locs":[
{
"coord":{
"x":2548196,
"y":6678528
},
"arrTime":"201510271104",
"depTime":"201510271104",
"name":null
},
{
"coord":{
"x":2548221.7,
"y":6678553.5
},
"arrTime":"201510271104",
"depTime":"201510271104",
"name":"Purotie"
},
{
"coord":{
"x":2548380.4,
"y":6678731.4
},
"arrTime":"201510271108",
"depTime":"201510271108",
"name":null
},
{
"coord":{
"x":2548393.8,
"y":6678721.2
},
"arrTime":"201510271108",
"depTime":"201510271108",
"name":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548426,
"y":6678692
},
"arrTime":"201510271109",
"depTime":"201510271109",
"name":"Takomotie",
"code":"1465104",
"shortCode":"1518",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
}
]
},
{
"length":456,
"duration":60,
"type":"5",
"code":"2270 2",
"locs":[
{
"coord":{
"x":2548426,
"y":6678692
},
"arrTime":"201510271109",
"depTime":"201510271109",
"name":"Takomotie",
"code":"1465104",
"shortCode":"1518",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548768,
"y":6678460
},
"arrTime":"201510271110",
"depTime":"201510271110",
"name":"Valimotie",
"code":"1465102",
"shortCode":"1516",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
}
]
},
{
"length":479,
"duration":366.36,
"type":"walk",
"locs":[
{
"coord":{
"x":2548768,
"y":6678460
},
"arrTime":"201510271110",
"depTime":"201510271110",
"name":"Valimotie",
"code":"1465102",
"shortCode":"1516",
"stopAddress":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548818.8,
"y":6678448
},
"arrTime":"201510271110",
"depTime":"201510271110",
"name":null
},
{
"coord":{
"x":2548822.7,
"y":6678455.2
},
"arrTime":"201510271111",
"depTime":"201510271111",
"name":"Pit\u00e4j\u00e4nm\u00e4entie"
},
{
"coord":{
"x":2548838.4,
"y":6678446.2
},
"arrTime":"201510271111",
"depTime":"201510271111",
"name":"H\u00f6yl\u00e4\u00e4m\u00f6tie"
},
{
"coord":{
"x":2548945.8,
"y":6678631.6
},
"arrTime":"201510271114",
"depTime":"201510271114",
"name":"Karvaamokuja"
},
{
"coord":{
"x":2549062,
"y":6678638
},
"arrTime":"201510271116",
"depTime":"201510271116",
"name":null
}
]
}
]
}
],
[
{
"length":1198.389,
"duration":960,
"legs":[
{
"length":1198,
"duration":998.34,
"type":"walk",
"locs":[
{
"coord":{
"x":2548196,
"y":6678528
},
"arrTime":"201510271105",
"depTime":"201510271105",
"name":null
},
{
"coord":{
"x":2548221.7,
"y":6678553.5
},
"arrTime":"201510271105",
"depTime":"201510271105",
"name":"Purotie - Takomotie"
},
{
"coord":{
"x":2548426,
"y":6678797.7
},
"arrTime":"201510271110",
"depTime":"201510271110",
"name":"Takomotie"
},
{
"coord":{
"x":2548455.9,
"y":6678803.9
},
"arrTime":"201510271110",
"depTime":"201510271110",
"name":"Kornetintie"
},
{
"coord":{
"x":2548760.5,
"y":6678595
},
"arrTime":"201510271116",
"depTime":"201510271116",
"name":"Valimotie"
},
{
"coord":{
"x":2548824.5,
"y":6678701.7
},
"arrTime":"201510271117",
"depTime":"201510271117",
"name":"Karvaamokuja"
},
{
"coord":{
"x":2549062,
"y":6678638
},
"arrTime":"201510271121",
"depTime":"201510271121",
"name":null
}
]
}
]
}
]
]
, который является массивом внутри массива. Я понятия не имею, как правильно его разобрать, и я пробовал много разных способов сделать это. Любая помощь оценивается.
P/S: Здесь представлена модель со всеми геттерами и сеттерами.
Model.class
public class ModelRoutes {
List<ModelRoute> modelRoutes;
public class ModelRoute {
long lenght;
long duration;
List<Leg> legs;
public class Leg {
long lenght;
long duration;
String type;
String code;
List<Locs> locs;
List<Shape> shapes;
public class Locs {
Coord coord;
long arrTime;
long depTime;
String name;
long code;
String shortCode;
String stopAddress;
public class Coord {
double x;
double y;
}
}
public class Shape{
double x;
double y;
}
}
}
}
Кроме того, работает модульное тестирование на это дает мне ошибку com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com.avior.aviorandroid.Models.ModelRoutes out of START_ARRAY token at line: 1, column: 2
Спасибо за ваш ответ. Я думаю, что у меня уже есть этот объект. Это называется ModelRoute, внутри основного класса ModelRoutes. – DeanK
@DeanK Существует объект json между массивом и полями 'length',' duration' и 'legs', которые, я думаю, вы не отображали. –