Nehmen Sie die folgende gültige json:Newtonsoft JSON.NET und Leerzeichen in JSON Key Bug?
{
"universe": {
"solar system": "sun"
}
}
und hier ist der einfache C# -Code:
using Newtonsoft.Json;
JToken x = JToken.Parse("{\"universe\": {\"solar system\": \"sun\"}}");
string s = x.First.First.First.Path;
An diesem Punkt s = "universe['solar system']"
aber ich "universe.['solar system']"
erwartet werde (die Bekanntmachung nach '' "Universum").
Wenn der JSON-Schlüssel kein Leerzeichen hat ("solar_system"), bekomme ich "universe.solar_system"
, was korrekt ist.
Die Frage ist: Ist das ein Fehler in json.net oder muss ich etwas anderes tun, um Leerzeichen in JSON-Schlüsseln zu unterstützen?
Danke,
PT
Nein, Schlüssel ist das Objekt und Sie können kein Objekt mit Leerzeichen definieren –
AFAIK kein Bug, nur dass Bracket-Notation obligatorisch ist, wenn Sie auf einen Schlüssel mit einem Leerzeichen zugreifen. Kann im Moment keine unterstützende Dokumentation finden, daher nur ein Kommentar. – Equalsk
Nun, alle json-Validatoren validieren gerne jsons mit Leerzeichen in den Schlüsseln, einschließlich Newtonsoft's json.net, das sie mit eckigen Klammern umschließt. Mein Problem ist der fehlende Punkt "." zwischen den Schlüsseln. – pts4