Lassen Sie uns auf die Handhabung von JSON mit Jackson in Java zurückblicken. Bei meinem Projekt ist Java fast ein Websystem, und die Zusammenarbeit zwischen Servlets und JavaScript ist wichtig. Zunächst habe ich versucht, JSON dieses Mal vom Server zurückzugeben. Mit Ausnahme der Implementierung in Servlet werden die meisten Referenzen umgeleitet.
Um in JSON konvertieren zu können, muss zunächst eine Java-Klasse erstellt werden, in der das Objekt gespeichert wird. Die Eigenschaften von ID (Nummerntyp), Name (Zeichenfolgentyp) und Daten (Array) werden wie folgt vorbereitet. Der Schlüssel ist die Anmerkung von @JsonProperty. Ohne sie tritt eine Ausnahme auf.
JsonBean.java
package servletTest;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
public class JsonBean {
@JsonProperty("id")
private int id;
@JsonProperty("name")
private String name;
@JsonProperty("datas")
private List<String> datas;
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setDatas(List<String> datas) {
this.datas = datas;
}
}
Erstellen Sie ein Objekt mit der im vorherigen Abschnitt erstellten Java-Klasse, konvertieren Sie es mit der writeValueAsString-Methode der ObjectMapper-Klasse in eine Json-Zeichenfolge und geben Sie es an den Client zurück.
SetvletTest.java
package servletTest;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
//Referenz https://itsakura.com/java-jackson
@WebServlet("/helloworld")
public class ServletTest extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Legen Sie den Wert im Java-Objekt fest
JsonBean jsonBean = new JsonBean();
jsonBean.setId(1);
jsonBean.setName("kimisyo");
List<String> datas = new ArrayList<>();
datas.add("Programmer");
datas.add("Data Scientist");
jsonBean.setDatas(datas);
ObjectMapper mapper = new ObjectMapper();
try {
//Vom Java-Objekt in JSON konvertieren
String testJson = mapper.writeValueAsString(jsonBean);
//JSON-Ausgabe
response.getWriter().write(testJson);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
Wenn das oben genannte in Eclipse ausgeführt wird, wird die folgende Zeichenfolge im Browser angezeigt.
{"id":1,"name":"kimisyo","datas":["Programmer","Data Scientist"]}
Ursprünglich wäre es besser, auch den Inhaltstyp festzulegen, aber ich denke, ich muss dies ab dem nächsten Mal tun, also habe ich es verschoben. Ab dem nächsten Mal (falls vorhanden) planen wir, mit den folgenden Themen fortzufahren.
Recommended Posts