Как сохранить объект длиной json в локальном каталоге проекта? - PullRequest
0 голосов
/ 02 августа 2020

У меня есть проект с весенней загрузкой, и структура моего проекта выглядит так ...

-src
-target
-pom.xml
-uploaded_json
 -- example.json

и вот мой пример. json

[
    {
        "Username": "U1",
        "Password": "P1",
    },
    {
        "Username": "U2",
        "Password": "P2",
    },
    {
        "Username": "U3",
        "Password": "P3",
    }  
]
 

Могу я прочитать пример . json и сохранить как переменную типа int? Стоит ли использовать объект java .io.File? Пожалуйста, помогите мне понять, как получить размер файла JSON. Заранее спасибо.

Изменить: я сделал метод, используя простой - json.

@GetMapping("getJSON")
    public String testmethod() {
        JSONParser parser = new JSONParser();
        File directory = new File(".");
        JSONArray a;
        try {
            a = (JSONArray) parser.parse(new FileReader(
                    directory.getCanonicalPath() + "\\uploaded_json\\example.json"));
            int length = a.size();
            System.out.println(length);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;

    }

1 Ответ

1 голос
/ 02 августа 2020

Я бы использовал jackson-databind library, используя класс JsonNode.

Последняя версия в репозитории maven - 2.11.1

compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.11.1'

Вот пример получения размер с jackson-databind:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;

public class GradleApplication {
    public static void main(String[] args) {
    

        try {
            File jsonFile = Paths.get("src", "main", "resources", "example.json").toFile();
            ObjectMapper mapper = new ObjectMapper();
            JsonNode node = mapper.readTree(jsonFile);
            System.out.println("The size of the json is : "+ node.size());
        } catch (IOException e) {
            e.printStackTrace();
        }

     
    }
}
...