получить значение ArrayList из String - PullRequest
0 голосов
/ 08 марта 2019

Пожалуйста, у меня есть список, содержащий значение ниже

[ { "sender" : "sys" , "message" : [ "Hello, " , "how are you?"] ,"transaction_date" : { "$date" : "2019-02-14T17:34:12.705Z"} , "has_suggestions" : true } , { "sender" : "user" , "message" : [ "Hello." , "hey you"] , "visited" : true , "transaction_status" : "Succeded" , "transaction_date" : { "$date" : "2019-02-14T17:34:12.705Z"} , "has_suggestions" : true , "suggestion_list" : [ "Yes, I am." , "No, I am not."] , "suggestion_list_type" : "buttons"}, { "sender" : "sys" , "message" : { "has_form" : true , "form_type" : "prehandover_form" , "data" : { "text" : [ "Kindly provide your info"]}} , "visited" : false , "transaction_status" : "Succeded" , "transaction_date" : { "$date" : "2019-02-14T17:34:15.386Z"}}]

Я попытался просмотреть содержимое данных JSON, используя JsonNode Джексона под кодом:

ObjectMapper object = new ObjectMapper();
JsonNode jsonNode = object.readTree(value);
String sender = jsonNode.get("sender").textValue();

Но я получаю исключение в потоке "main" java.lang.NullPointerException Пожалуйста, любая помощь для прохождения через данные JSON будет высоко оценена.

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Вам нужно получить ArrayList от JsonNode.Вот ваше решение.

ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(json);
String sender = jsonNode.get(0).get("sender").textValue();
0 голосов
/ 08 марта 2019

JsonNode содержит несколько объектов. Из-за того, что вы прочитали все элементы отправителя, вы можете использовать следующий код.

public static void main(String[] args) throws IOException {
        File file = new File("src\\main\\java\\json.txt");
        FileInputStream value = new FileInputStream(file);
        ObjectMapper object = new ObjectMapper();
        JsonNode jsonNode = object.readTree(value);
        for (int i=0;i<jsonNode.size();i++){
            System.out.println(jsonNode.get(i).findValue("sender").textValue());
        }
    }
...