GSON nicht konvertieren Objekt: leeres JSON, obwohl das Objekt Attribute festgelegt hat

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: GSON nicht konvertieren Objekt: leeres JSON, obwohl das Objekt Attribute festgelegt hat

by Anonymous » 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.

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();
}
Wie Sie sehen können, versuche ich, das NewChat -Objekt in einen JSON-String umzuwandeln.

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;
}
Beim Drucken des JSON ist die Ausgabe lediglich {} , während NewChat.Name den Namen wie früher in der Methode festgelegt wird.

Top