Как преобразовать JSON в файл свойств в Java?

a = Image.open(path2 + '\\'+ imlist[0])

У вас была небольшая ошибка кода. "Data1", который не является правильным путем

-2
задан Anirudh Jaiswal 20 January 2019 в 06:27
поделиться

1 ответ

Вы можете использовать JavaPropsMapper из библиотеки Джексона. Но вы должны определить иерархию объектов принимающего объекта json, прежде чем использовать его, чтобы иметь возможность анализировать строку json и создавать из нее объект java.

Как только у вас есть java-объект, успешно созданный из json, вы можете преобразовать его в объект Properties, а затем сериализовать его в файл, и это создаст то, что вы хотите.

Пример json:

{ "title" : "Home Page", 
  "site"  : { 
        "host" : "localhost"
        "port" : 8080 ,
        "connection" : { 
            "type" : "TCP",
            "timeout" : 30 
        } 
    } 
}

И иерархия классов для сопоставления вышеуказанной структуры JSON:

class Endpoint {
    public String title;
    public Site site;
}

class Site {
    public String host;
    public int port; 
    public Connection connection;
}

class Connection{
    public String type;
    public int timeout;
}

Таким образом, вы можете создать из нее объект java Endpoint и конвертировать в объект Properties, а затем вы можете сериализовать в файл .properties:

public class Main {

    public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
        String json = "{ \"title\" : \"Home Page\", "+
                         "\"site\" : { "+
                                "\"host\" : \"localhost\", "+
                                "\"port\" : 8080 , "+
                                "\"connection\" : { "+
                                    "\"type\" : \"TCP\","+
                                    "\"timeout\" : 30 "+
                                "} "+
                            "} "+
                        "}";

        ObjectMapper om = new ObjectMapper();
        Endpoint host = om.readValue(json, Endpoint.class);

        JavaPropsMapper mapper = new JavaPropsMapper();

        Properties props = mapper.writeValueAsProperties(host); 

        props.store(new FileOutputStream(new File("/path_to_file/json.properties")), "");
    }
}

Когда вы откроете файл json.properties, вы увидите вывод:

site .connection.type = TCP

site.connection.timeout = 30

site.port = 8080

site.host = localhost

title = Главная Страница

Идея возникла из этой статьи.

Надеюсь, это будет полезно.

0
ответ дан STaefi 20 January 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: