2017-06-07 2 views
1

Ich mache Verschlüsselung/Entschlüsselung meiner appsettings.json Datei innerhalb meiner ASP.NET-Anwendung.Deserialize appsettings.json mit ASP.NET Core

Nach der Entschlüsselung wird meine Datei an die folgende Zeichenfolge richtig entschlüsselt:

{ 
    "ConnectionStrings": { 
    "IdentityServer4": "server=(localdb)\\mssqllocaldb;database=IdentityServer4.Quickstart.EntityFramework;trusted_connection=yes" 
    } 
} 

Ich würde jetzt dieses Ergebnis zu einem Objekt konvertieren möchte, die ich versuche, die folgende Zeile zu tun mit Code:

dynamic result = JsonConvert.DeserializeObject(jsonString); 

Wenn diese Leitung führt, I die folgenden Fehler:

"Unexpected character encountered while parsing value: . Path '', line 0, position 0." 
+0

Haben Sie die Variable jsonString protokolliert, um zu überprüfen, ob sie gültiges JSON enthält? –

+1

Möglicherweise gibt es eine [BOM] (https://en.wikipedia.org/wiki/Byte_order_mark) am Anfang der Zeichenfolge. Wenn dies der Fall ist, finden Sie beispielsweise [hier] (https://stackoverflow.com/q/1317700/3744182) Vorschläge zur Lösung. – dbc

+1

@ dbc, Sie sind absolut richtig. Ein 'jsonString = jsonString.Trim (neues Zeichen [] {'\ uFFEFF', '\ u200B'});' löste dies. Bitte senden Sie eine Antwort, damit ich akzeptieren kann. – blgrnboy

Antwort

0

Es scheint ein Byte Order Mark am Anfang der Zeichenfolge.

Zum Entfernen der Stückliste siehe Antworten auf this question.

Es wäre jedoch besser, es nicht in der Zeichenfolge zu Beginn zu enthalten. Wenn Sie ein Byte-Array haben, das eine Stückliste enthält, gehen Sie wie folgt vor:

var jsonString = Encoding.UTF8.GetString(byteArray); 

Dann ist die Stückliste enthalten. Aber wenn Sie die binären Daten mit einem StreamReader lesen, dann wird die Stückliste bearbeitet und entfernt werden:

var jsonString = new StreamReader(new MemoryStream(byteArray)).ReadToEnd(); 

(Sie using Aussagen, dass hinzufügen können, wenn Sie es vorziehen, obwohl MemoryStream eigentlich nicht entsorgt werden müssen.)

Oder streamen, entschlüsseln und deserialisieren alle auf einmal in den Zeilen this answer (für XML) und this one (für gleichzeitige Dekomprimierung und Deserialisierung von JSON).

Verwandte Themen