Java Java Objekt in JSON convertieren und richtig benennen

mmtzh

Cadet 3rd Year
Registriert
Nov. 2014
Beiträge
62
Hallo,

ich habe eine Java-Anwendung, die einen POST-Request an eine REST Schnittstelle schickt.
Ich möchte nun das JSON haben, das an die REST-Schnittstelle geschickt wird.

In meiner DTO-Klasse verwende ich die Annotation @JsonProperty um anzugeben wie die Attribute im Json heißen sollen.
Also so:
Code:
import com.fasterxml.jackson.annotation.JsonProperty;

public final class CompanyDTO implements Serializable {
	@JsonProperty("ADDRESS")
	private String address;

         @JsonProperty("USER_NAME")
         private String username;
}

Wenn ich nun mein Pojo in ein JSON-Convertiere, erhalte ich immer ein JSON mit den Java-Attribut-Namen (address und username) und nicht mit den Namen, die ich im JsonProperty angegeben habe (also USER_NAME und ADDRESS).
Was muss ich tun um ein JSON zu erhalten, das so aussieht, wie es tatsächlich im Post-Request verschickt wird?

Bisher bin ich mit folgendem Code gescheitert:
Code:
			ObjectMapper mapper = new ObjectMapper();
			mapper.writeValue(new File("article.json"), myPojo);
 
Da ich auf den ersten Blick keine Fehler sehe, habe ich es kurz selbst ausprobiert und bei mir funktioniert es problemlos.
Bist du Dir sicher, dass du das korrekte POJO serialisierst? Sind deine imports korrekt und ohne Warnungen?
Hier mein Test:

Test output in Konsole:
{"ADDRESS":"blub?","USER_NAME":"bla"}
(Die neue Datei schaut genauso aus)

Code:
package com.example;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;

public final class CompanyDto implements Serializable {

    @JsonProperty("ADDRESS")
    private String address;

    @JsonProperty("USER_NAME")
    private String username;

    public CompanyDto() {
        address = "blub?";
        username = "bla";
    }
}

Code:
package com.example;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;

public class TestJson {

    public static void main(String [] args){
        CompanyDto myPojo = new CompanyDto();
        ObjectMapper mapper = new ObjectMapper();
        String jsonInString = "";
        try {
            mapper.writeValue(new File("article.json"), myPojo);
            jsonInString = mapper.writeValueAsString(myPojo);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(jsonInString);
    }
}
 
Zuletzt bearbeitet:
Zurück
Oben