GSON nicht konvertieren Objekt: leeres JSON, obwohl das Objekt Attribute festgelegt hat
Posted: 28 May 2025, 11:36
Ich versuche, das GSON -Paket von Google in meinem Java -Code zu verwenden. Dabei erstelle ich eine einfache Anwendung, in der ich einen Chat -Kurs und eine Nachrichtenklasse habe. Obwohl ich die Klassenattribute zu einer neuen Instanz der Klasse hinzugefügt habe, konvertiert GSON die Klasse nicht in JSON.
Wie Sie sehen können, versuche ich, das NewChat -Objekt in einen JSON-String umzuwandeln.
Beim Drucken des JSON ist die Ausgabe lediglich {} , während NewChat.Name den Namen wie früher in der Methode festgelegt wird.
Code: Select all
public static void createChat(String chatname, String creatorUsername, String chatMessage) throws SQLException {
// create a database connection
Connection connection = DriverManager.getConnection("jdbc:sqlite:chatdata.db");
PreparedStatement statement = connection.prepareStatement("INSERT INTO chatdata (name, data) VALUES (?, ?);");
statement.setQueryTimeout(30); // set timeout to 30 sec.
Chat newChat = new Chat();
newChat.name = chatname;
Message firstMsg = new Message();
firstMsg.poster = creatorUsername;
firstMsg.messageContent = chatMessage;
newChat.allMessages.add(firstMsg);
newChat.members.add(creatorUsername);
// Create DB if not exists
createDbIfNotExists("chatdata");
// Convert class to json using gson
String chatJson = gson.toJson(newChat);
print(newChat.name);
print(chatJson);
statement.setString(1, chatname);
statement.setString(2, chatJson);
statement.executeUpdate();
}
Code: Select all
public class Chat {
public static String name;
public static ArrayList allMessages = new ArrayList();
public static ArrayList members = new ArrayList();
}
class Message {
public static String poster;
public static String messageContent;
}