


Wie kann das Problem des Fehlers bei der Deserialisierung von Attributwerten gelöst werden?
Einführung: Als ich die Webapi-Schnittstelle entwickelte, stieß ich auf Folgendes: Wenn eine komplexe JSON-Zeichenfolge in ein Objekt deserialisiert wird, kann eines der Attributobjekte nicht serialisiert werden?
Verwendung:
InternalRecommendRequestFormModel formData = Newtonsoft.Json.JsonConvert.DeserializeObject<InternalRecommendRequestFormModel>(dataInput);
Darunter: InternalRecommendRequestFormModel ist ein komplexes Objekt, und seine Eigenschaften enthalten andere Objekte und Eigenschaften. dataInput ist die von der Schnittstelle übergebene JSON-Zeichenfolge, bei der es sich um das von einer anderen Schnittstelle zurückgegebene InternalRecommendRequestFormModel-Objekt handelt. Natürlich haben sich einige Eigenschaften der Daten während des Übertragungsprozesses geändert. Sie sollten jedoch deserialisiert werden, wenn sie verwendet werden Es wird ein Fehler gemeldet und eines der Attribute kann nicht serialisiert werden.
Was sollen wir also tun, wenn wir auf eine solch komplexe Deserialisierung in Objekte stoßen?
Zuallererst: Die Analyse zeigt, dass der Fehler durch den Serialisierungsfehler einzelner Attribute verursacht wird. Solange diese Attribute gelöscht oder der serialisierte Inhalt des Attributs entfernt werden können, ist alles in Ordnung.
Also: Wie entferne ich einige Attribute aus der serialisierten JSON-Zeichenfolge?
Das erste, woran wir denken, ist das Ersetzen von Saiten, das Löschen, das Abfangen usw., aber es ist leicht, Fehler zu machen. Können wir diese Zeichenfolge in ein funktionsfähiges Objekt umwandeln (natürlich nicht InternalRecommendRequestFormModel), dann ein Objekt töten oder löschen und es dann in das gewünschte Objekt konvertieren? Als ich zum ersten Mal über ein Objekt nachdachte: Ist eigentlich nicht jedes Objekt ein Objekt?
Beginnen Sie mit dem Versuch:
object formData = Newtonsoft.Json.JsonConvert.DeserializeObject<object>(dataInput);
Das erhaltene Objekt ist wie folgt:
Beim Debuggen entdeckt:
((Newtonsoft.Json.Linq.JObject)(JsonConvert.DeserializeObject
Mit anderen Worten, wie aus dem obigen Code ersichtlich ist, wird das deserialisierte Objektobjekt in Folgendes konvertiert: Newtonsoft.Json.Linq.JObject-Objekt. Dieses Objekt ist eine Basisklasse des von Microsoft bereitgestellten JSON-Objekts. Das heißt, solange Sie ein Objekt sind und es von JSON serialisiert wird, kann es Ihnen dabei helfen, es wieder zu deserialisieren.
Der Code wurde verbessert zu:
InternalRecommendRequestFormModel formData = new InternalRecommendRequestFormModel();Newtonsoft.Json.Linq.JObject obj = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(dataInput); obj.Remove("opinions"); formData = obj.ToObject<InternalRecommendRequestFormModel>();
Zusammenfassung:
Solange die JSON-Zeichenfolge ein Objekt ist und wir direkt deserialisieren und feststellen, dass einige Attributwerte in der Zeichenfolge nicht den Anforderungen entsprechen, können wir das Objekt zunächst in JObject konvertieren und die Objektattribute korrigieren , und verwenden Sie dann JObject, um ToObject
<strong><span style="font-size: 15px">Newtonsoft.Json.Linq.JObject obj = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(dataInput);</span></strong><br>
Das obige ist der detaillierte Inhalt vonWie kann das Problem des Fehlers bei der Deserialisierung von Attributwerten gelöst werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Zu den Leistungsoptimierungsmethoden für die Konvertierung von PHP-Arrays in JSON gehören: Verwendung von JSON-Erweiterungen und der Funktion json_encode(); Verwendung von Puffern zur Verbesserung der Leistung der Schleifencodierung; JSON-Codierungsbibliothek.

Ausführliche Erläuterung der Methode zum Konvertieren des Typs int in einen String in PHP. Bei der PHP-Entwicklung stoßen wir häufig auf die Notwendigkeit, den Typ int in einen String-Typ zu konvertieren. Diese Konvertierung kann auf verschiedene Weise erreicht werden. In diesem Artikel werden verschiedene gängige Methoden im Detail vorgestellt, mit spezifischen Codebeispielen, um den Lesern das Verständnis zu erleichtern. 1. Verwenden Sie die integrierte Funktion strval() von PHP. PHP bietet eine integrierte Funktion strval(), die Variablen verschiedener Typen in String-Typen konvertieren kann. Wenn wir den Typ int in den Typ string konvertieren müssen,

1. Öffnen Sie zuerst Pycharm und rufen Sie die Pycharm-Homepage auf. 2. Erstellen Sie dann ein neues Python-Skript, klicken Sie mit der rechten Maustaste – klicken Sie auf „Neu“ – klicken Sie auf „Pythondatei“. 3. Geben Sie eine Zeichenfolge ein, Code: s="-". 4. Dann müssen Sie die Symbole in der Zeichenfolge 20 Mal wiederholen, Code: s1=s*20 5. Geben Sie den Druckausgabecode ein, Code: print(s1). 6. Führen Sie abschließend das Skript aus und Sie sehen unten unseren Rückgabewert: - 20 Mal wiederholt.

So konvertieren Sie ein MySQL-Abfrageergebnis-Array in ein Objekt: Erstellen Sie ein leeres Objekt-Array. Durchlaufen Sie das resultierende Array und erstellen Sie für jede Zeile ein neues Objekt. Verwenden Sie eine foreach-Schleife, um die Schlüssel-Wert-Paare jeder Zeile den entsprechenden Eigenschaften des neuen Objekts zuzuweisen. Fügt dem Objektarray ein neues Objekt hinzu. Schließen Sie die Datenbankverbindung.

Anmerkungen in der Jackson-Bibliothek steuern die JSON-Serialisierung und -Deserialisierung: Serialisierung: @JsonIgnore: Ignorieren Sie die Eigenschaft @JsonProperty: Geben Sie den Namen an @JsonGetter: Verwenden Sie die get-Methode @JsonSetter: Verwenden Sie die set-Methode Deserialisierung: @JsonIgnoreProperties: Ignorieren Sie die Eigenschaft @ JsonProperty: Geben Sie den Namen @JsonCreator an: Verwenden Sie den Konstruktor @JsonDeserialize: Benutzerdefinierte Logik

In PHP ist ein Array eine geordnete Sequenz, und auf Elemente wird über einen Index zugegriffen. Ein Objekt ist eine Entität mit Eigenschaften und Methoden, die über das Schlüsselwort new erstellt werden. Der Array-Zugriff erfolgt über einen Index, der Objektzugriff über Eigenschaften/Methoden. Es werden Array-Werte und Objektreferenzen übergeben.

PHP-String-Operation: Eine praktische Methode zum effektiven Entfernen von Leerzeichen Bei der PHP-Entwicklung kommt es häufig vor, dass Sie Leerzeichen aus einem String entfernen müssen. Das Entfernen von Leerzeichen kann die Zeichenfolge sauberer machen und die nachfolgende Datenverarbeitung und -anzeige erleichtern. In diesem Artikel werden mehrere effektive und praktische Methoden zum Entfernen von Leerzeichen vorgestellt und spezifische Codebeispiele angehängt. Methode 1: Verwenden Sie die in PHP integrierte Funktion trim(). Die in PHP integrierte Funktion trim() kann Leerzeichen an beiden Enden der Zeichenfolge entfernen (einschließlich Leerzeichen, Tabulatoren, Zeilenumbrüche usw.), was sehr praktisch und einfach ist benutzen.

PHP-String-Operation: Entfernen Sie zusätzliche Kommas und behalten Sie nur Kommas bei. Implementierungstipps In der PHP-Entwicklung ist die String-Verarbeitung eine sehr häufige Anforderung. Manchmal müssen wir die Zeichenfolge verarbeiten, um zusätzliche Kommas zu entfernen und die einzigen Kommas beizubehalten. In diesem Artikel stelle ich eine Implementierungstechnik vor und stelle konkrete Codebeispiele bereit. Schauen wir uns zunächst eine allgemeine Anforderung an: Angenommen, wir haben eine Zeichenfolge, die mehrere Kommas enthält, und wir müssen die zusätzlichen Kommas entfernen und nur das eindeutige Komma beibehalten. Ersetzen Sie beispielsweise „apple,ba
