[JAVA] Ausgabe Bean als JSON im Frühjahr

pom.xml

pom.xml


	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.1.RELEASE</version>
	</parent>
	<dependencies>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
	</dependencies>

Dateiausgabe mit ObjectWriter

package kagamihoge.tojsonfile;

import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

import com.fasterxml.jackson.core.util.DefaultPrettyPrinter;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectWriter;

import lombok.AllArgsConstructor;
import lombok.Data;

@SpringBootApplication
public class BeanToJsonFileApplication implements CommandLineRunner {
	public static void main(String[] args) throws InterruptedException {
		SpringApplication.run(BeanToJsonFileApplication.class, args).close();
	}

	@Bean
	public ObjectWriter writer() {
		ObjectMapper mapper = new ObjectMapper();
		ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter());
		return writer;
	}

	@Autowired
	ObjectWriter writer;

	@Override
	public void run(String... args) throws Exception {
		List<Sub> subList = Arrays.asList(new Sub(1, true), new Sub(2, true));
		Top top = new Top("hogeId", null, subList);

		writer.writeValue(Paths.get("json.txt").toFile(), top);
	}

	@Data
	@AllArgsConstructor
	static class Top {
		private String hogeId;
		private String nullValue;
		private List<Sub> subList;
	}

	@Data
	@AllArgsConstructor
	static class Sub {
		private int subId;
		private boolean bool;
	}
}

Ausgabebeispiel

{
  "hogeId" : "hogeId",
  "nullValue" : null,
  "subList" : [ {
    "subId" : 1,
    "bool" : true
  }, {
    "subId" : 2,
    "bool" : true
  } ]
}

Andere Steuerelemente

Es ist im Grunde genommen Jackson. Wenn Sie also etwas anderes haben, das Sie tun möchten, kommt es normalerweise heraus.

Das Folgende ist ein Beispiel.

Konvertieren Sie den Schlüssel vom Kamelkoffer zum Schlangenkoffer

import com.fasterxml.jackson.databind.PropertyNamingStrategy;

mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

Ausgabebeispiel.

{
  "hoge_id" : "hogeId",
  "null_value" : null,
  "sub_list" : [ {
    "sub_id" : 1,
    "bool" : true
  }, {
    "sub_id" : 2,
    "bool" : true
  } ]
}

Ändern Sie den Schlüssel in einen beliebigen Wert


@JsonProperty("alternateId")
private String hogeId;

Ausgabe als String

System.out.println(writer.writeValueAsString(top));

Wenn Sie keine JSON-Formatierung benötigen

import com.fasterxml.jackson.core.util.MinimalPrettyPrinter;

ObjectWriter writer = mapper.writer(new MinimalPrettyPrinter());

Ausgabebeispiel.

{"null_value":null,"sub_list":[{"sub_id":1,"bool":true},{"sub_id":2,"bool":true}],"alternateId":"hogeId"}

Recommended Posts

Ausgabe Bean als JSON im Frühjahr
Spring Boot-Protokoll im JSON-Format ausgeben
Wird in Spring Boot mithilfe einer Bean-Definitionsdatei mit dem Namen application.xml angepasst
Statische Dateizugriffspriorität beim Spring Boot
Memorandum zum Herunterladen lokaler Dateien mit Spring Boot
DI SessionScope Bean im Spring Boot 2-Filter
Anforderungs- und Antwortprotokolle mit Spring Boot ausgeben
So binden Sie mit einer Eigenschaftendatei in Spring Boot
[Java] In der Ausgabe wird etwas als "-0.0" angezeigt
Das @ Import-Ziel wird im Frühjahr als @ Konfiguration behandelt
[Spring Batch] Gibt Tabellendaten in eine CSV-Datei aus
So testen Sie den Bildschirm zum Hochladen von Dateien mit Spring + Selenium
Java11: Führen Sie Java-Code unverändert in einer einzelnen Datei aus
Lesen Sie JSON in Java
Lebenszyklus der Frühlingsbohnen
Analysieren Sie Json in Scala
Verwenden Sie Interceptor im Frühjahr
Microservices in Spring Cloud
POST JSON in Java
Ausgabedreieck in Ruby
Holen Sie sich Cookies im Frühling
Ausgabe in Vielfachen von 3
Authentifizieren Sie 3 oder mehr Parameter im JSON-Format mit Spring Security
Erstellen Sie eine API zum Senden und Empfangen von Json-Daten mit Spring
Geben Sie den relativen Pfad in der durch Gradle Eclipse generierten .classpath-Datei aus
Antwortheader werden in Spring Security 4.1 möglicherweise nicht korrekt ausgegeben
Richten Sie Multipart Resolver ein, damit Spring Dateien hochladen kann