Ändern eines unveränderlichen Objekts F #

8

Ich denke, der Titel ist falsch, aber ich kann keinen Titel erstellen, der, abstrakt ausgedrückt, das ist, was ich erreichen möchte.

Ich schreibe eine Funktion, die einen Service aufruft und Daten als JSON-String abruft. Die Funktion analysiert die Zeichenfolge mit einem JSON-Typ-Provider . Unter bestimmten Bedingungen möchte ich Eigenschaften für dieses JSON-Objekt ändern und dann die Zeichenfolge des geänderten Objekts zurückgeben. Also wenn die Antwort von dem Anruf war

%Vor%

Ich möchte property3 in einen neuen Wert ändern und dann die JSON-Zeichenfolge zurückgeben.

Wenn der JsonProvider veränderbar wäre, wäre dies eine Übung wie:

%Vor%

Dies funktioniert jedoch nicht, da die Eigenschaft nicht festgelegt werden kann. Ich versuche herauszufinden, wie dies am besten gelöst werden kann. Ich bin ziemlich glücklich, ein neues Objekt basierend auf der ursprünglichen Antwort zu initialisieren, aber mit geänderten Parametern, aber ich bin mir nicht sicher, ob es einen einfachen Weg gibt, dies zu erreichen.

Als Referenz ist das JSON-Objekt wesentlich komplizierter als das flache Beispiel und enthält eine tiefe Hierarchie.

    
AlexC 27.06.2014, 08:27
quelle

1 Antwort

6

Ja, Sie müssten ein neues Objekt erstellen, die gewünschten Bits ändern und die Werte des vorhandenen Objekts für den Rest verwenden. Wir haben vor einiger Zeit Schreib-APIs sowohl für den XML- als auch für den JSON-Typ-Provider hinzugefügt. Sie werden bemerken, dass die Typen, die Ihre JSON darstellen, Konstruktoren für sie haben. Sie können ein Beispiel dafür unten im Link

sehen     
Ross McKinlay 27.06.2014 11:45
quelle

Tags und Links