2016-08-05 17 views
0

Ich habe eine Zeichenfolge in dieser DarstellungCast String-Darstellung zu Json

{ 
    transaction_id = 120, 
    transaction_shortname = 120. AUTO 
} 

Es ist keine Json Darstellung i wissen wollen, ob es eine einfache Art und Weise ist es so zu Json Darstellung zu transformieren:

{ 
     "transaction_id": "120", 
     "transaction_shortname": "120. AUTO" 
} 

Danach kann ich das tun nach einem Transaction-Objekt zu erhalten:

 JObject j = JObject.Parse("{\"transaction_id\": \"120\",\"transaction_shortname\": \"120. AUTO\"}"); 
     transaction ttttt = JsonConvert.DeserializeObject<transaction>(j.ToString()); 
+0

Sie können etwas wie 'String Ausg = inp.Replace (@ "transaction_", "\" transaction_ ") \t \t \t .replace ("=“, "\": \ "") \t \t \t .Replace ("," + Environment.NewLine, "\", "+ Environment.NewLine) \t \t \t .Replace (Environment.NewLine +"} "," \ "" + Environment.NewLine + "}"); ' –

+0

Ich kann es nicht tun, und ich kann eine Schleife auf Eigenschaften nicht machen und den Json für Leistungsprobleme konstruieren –

Antwort

1

Nein, das kann nicht zusammen Wenn Sie automatisch zu JSON wechseln, müssen Sie das Format, das Sie manuell haben, analysieren. Und ich kenne keine Sprache, die diese Syntax unterstützt.

Wenn Sie jedoch absolut sicher sind, wird es nicht einige komplexe Fälle wie Strings in Anführungszeichen und „=“ und „\““in Werte sein, können Sie einfach anwenden regex:

Regex.Replace(
    source.Replace("\r\n", "\n"), 
    @"(\n\s*)([^\n]*?)\s*=\s*([^\n]*?)([,\n])", 
    "$1\"$2\": \"$3\"$4") 
0

Vielen Dank für Ihre Antwort,
Lets i ein Objekt Objekt j zu sagen haben; es ist Basis

{ 
    transaction_id = 120, 
    transaction_shortname = 120. AUTO 
} 

ich, indem sie folgende beendet ist:

+2

Nein, das ist überhaupt nicht richtig.Newtonsoft versteht dieses Beispiel nicht, obwohl es nicht notierte Eigenschaftsnamen behandelt und Kommentare, es weiß nicht, was er mit dem '120 machen soll. AUTO' und gibt einen Parse-Fehler an. – user5090812

+0

Wenn ich JsonConvert.SerializeObject (j) mache ich bekomme eine korrekte JSON-String –

1

Der von Ihnen angegebene Auszug gilt als HJSON und kann daher von jeder HJSON-Bibliothek analysiert werden. https://hjson.org/

+0

HJSON verwendet: anstelle von = –