2017-05-22 2 views
-1

Ich bin eine JSON-Antwort von einem externen Service zu empfangen. Ich deserialisiere es nicht zu einem Objekt. Ich möchte in der Lage sein, eine neue Eigenschaft zu dem JSON unter Verwendung von C# hinzuzufügen.hinzufügen neue Eigenschaft in JSON C#

+1

Wo ist Ihr JSON so können wir das Format sehen? Was möchtest du hinzufügen? Und warum willst du tun, was du verlangst - vielleicht gibt es eine bessere Alternative. – CodingYoshi

+0

Bitte klären Sie Ihre Frage, indem Sie konkret zeigen, was Sie tun und versuchen zu tun - z. B. ein [MCVE]. Du hast geschrieben: * Ich deserialisiere es nicht zu einem Objekt. * Was tust du dann? Was hast du bisher versucht und wie funktioniert es nicht? Welche Ausnahme erhalten Sie (wenn überhaupt)? Siehe [fragen] nach allgemeinen Richtlinien für Fragen. – dbc

+1

Mögliche Duplikat von [Wie eine zusätzliche Eigenschaft in eine serialisierte JSON-String mit json.net?](https://stackoverflow.com/q/18692523/10263) hinzufügen –

Antwort

-3

Sie haben zwei Möglichkeiten, direkte String-Manipulation oder eine Bibliothek wie http://www.newtonsoft.com/json verwendet, die Sie zu Ihrem Projekt hinzufügen können NuGet verwenden.

Wenn es Manipulation String und Sie nicht wollen, zu analysieren, dann wird es nur sinnvoll sein, auf das Wurzelobjekt in der Grafik anzuhängen. Ersetzen Sie die letzte geschweifte Klammer mit zusätzlicher Eigenschaft:

using System; 

namespace WindowsFormsApp1 
{ 
    static class Program 
    { 
    [STAThread] 
    static void Main() 
    { 
     string s = "{ \"A\": \"val-A\" }"; 
     Console.WriteLine(s); 
     s = s.Substring(0, s.Length - 1) + ", \"your-prop-name\": \"the-prop-value\" }"; 
     Console.WriteLine(s); 
    } 
    } 
} 

Und die Ausgabe:

{ "A": "val-A" } 
{ "A": "val-A" , "your-prop-name": "the-prop-value" } 
+0

Wer möchte sagen, warum sie denken, das ist keine Antwort auf die Frage? Wie sonst kannst du es ohne Parsing machen? Wenn du mit Regex kreativ wirst, dann parst du _parst_. Ich habe eine brauchbare Antwort auf die Frage gegeben. Ihr zwei habt es nicht getan. –

+1

Ich habe dv nicht, aber ich weiß nicht, wie Leute vorschlagen String-Manipulation für diese Art der Sache zu sehen, und ich denke, das ist ein gemeinsames Gefühl Runde hier. Ihr erster Absatz ist die richtige Antwort (vielleicht wäre es besser mit Code, aber wenn OP eine energische Antwort wollte, hätte er eine weniger faule Frage schreiben können). Vielleicht dachten sie, ohne das Ganze zu lesen; Vielleicht sind sie nur wirklich auf dem Kriegspfad. –

+0

Auch einige Leute, wenn OP will helfen, etwas falsch zu tun, denken sie nicht, dass Sie ihm sagen sollten, es richtig zu machen. –

1

Es ist schwer, eine richtige Antwort mit so wenigen Informationen zu geben, aber aus der Spitze von meinem Kopf das ist, was ich ‚d tun

string json = "{\"Property1\":1}"; 

dynamic d = JsonConvert.DeserializeObject(json); 
d.Property2 = 2; 

string new_json = JsonConvert.SerializeObject(d); 

Sie würden {"Property1":1, "Property2":2} bekommen.

Verwandte Themen