lima-city: Webhosting, Domains und Cloud
0 Pluspunkte 0 Minuspunkte

Ich habe eine Klasse ChatMsg

private sealed class ChatMsg
{
    [JsonPropertyName("role")]
    public string Role { get; set; } = "";

    [JsonPropertyName("content")]
    public string? Content { get; set; }

    [JsonPropertyName("tool_call_id")]
    public string? ToolCallId { get; set; }

    [JsonPropertyName("name")]
    public string? Name { get; set; }

    [JsonPropertyName("tool_calls")]
    public List<ToolCall>? ToolCalls { get; set; }
}

und eine List<ChatMsg> daraus erstellt. Wie kann ich diese Liste aus JSON Objekten zu einem einzelnen JSON Objekt machen und in einer Datei speichern?

bezieht sich auf eine Antwort auf: JSON Daten in C#
von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Eine List<ChatMsg> ist in JSON automatisch ein JSON-Array. Du brauchst also nur ein Container Objekt drum herum. Am besten baust du dir dazu eine Wrapper Klasse

using System.Text.Json;
using System.Text.Json.Serialization;

public sealed class ChatLog
{
    [JsonPropertyName("messages")]
    public List<ChatMsg> Messages { get; set; } = new();
}

dann kannst du es ganz einfach serialisieren.

List<ChatMsg> list = /* deine Liste */;

var log = new ChatLog { Messages = list };

var options = new JsonSerializerOptions
{
    WriteIndented = true, // formatiert
    DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};

string json = JsonSerializer.Serialize(log, options);
von (86 Punkte)  
0 Pluspunkte 0 Minuspunkte

Mit dem JSONSerializer kannst du das.

string json = JsonSerializer.Serialize(new { messages = myList });
von (537 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2,533 Fragen

3,049 Antworten

281 Kommentare

13 Nutzer