Джексон: немаршалловый массив массивов - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть следующий (что кажется ужасом) кусок JSON

[
 ["X", "Y", 0.00010919, 0, null, null, null],
 ["X", "Y", 0.00210919, 0, null, null, null],
 ["A", "B", 0.00310919, 0, null, null, null]
]

Я изо всех сил пытаюсь заставить Джексона разобрать его, не говоря уже о том, как согласованно разоблачить это через POJO.

Любой совет?

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете просто проанализировать массив с помощью Array[Object], набрав приведение их к ArrayList<Object>

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

public class ArrayOfArray {

    public static void main(String[] args) throws IOException {
        Object[] objArr = new Object[0];
        String jsonFilePath = "src/main/resources/arrayOfArray.json"; // JSON File Path
        Object[] mySystems = new ObjectMapper().readValue(new File(jsonFilePath), objArr.getClass());

        for (int i = 0 ; i < mySystems.length;i++) {
            ArrayList<Object> list = (ArrayList<Object>)mySystems[i];
            for (Object obj :list) {
                System.out.print(obj + " ");
            }
            System.out.println();
        }

    }
}

, если вам нужно сопоставить JSON с POJO через мапперы напрямую, тогда они должны иметь некоторую структуру введите JSON в нем. например,

[
 { "field" : "X", "field1" : "Y", ...],
 {"field" : "X", "field1" : "Y", ...],
...
]

может быть сопоставлен непосредственно с Array[CustomBean]

class CustomBean {
 String field;
 String field1;
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...