2017-04-12 5 views
1

Die einfachste Möglichkeit, Spaltennamen in einer .json-Datei zu ändern, wäre, sie zu stringifizieren und einfach replace zu verwenden. Aber das könnte Werte beeinflussen.Schlüssel in JObject umbenennen

kann ich es auch in eine JSONObject analysieren und die Schlüssel Zeile für Zeile ersetzen, aber dies scheint nicht sehr effizient.

var json = client.DownloadString(item.uri); 
dynamic holdJson= JsonConvert.DeserializeObject(json); 

foreach(var item in holdJson) { 
    item.setKey("replacement"); ? 
} 

Fehle ich hier etwas? Was ist der beste Weg, Spaltenüberschriften in einer JSON-Datei zu ersetzen oder umzubenennen?

edit: Um meine Frage klarer zu stellen: Wie ändere ich den Schlüssel in einem JObject?

+0

ich hoffe, dass unter Link gelangen Sie in Javascript Ebene gleiche gilt in C# mit wenig ändern, überprüfen Sie bitte diesen Link http://stackoverflow.com/questions/13391579/how-to-rename-json-key zB helfen. [Code var json = { "_id": "5078c3a803ff4197dc81fbfb", "E-Mail": "[email protected]", "Bild": "some_image_url", "name": "Name 1"}, { "_ id":“ 5078c3a803ff4197dc81fbfc "," email ":" [email protected] "," Bild ":" some_image_url "," Name ":" Name 2 "}]; json = JSON.parse (JSON.stringify (json) .split (' "_ id":') join (' "id":'.)); document.write (JSON.stringify (json)); –

Antwort

0

Obwohl es nicht die richtige Antwort sein könnte, es ist möglich, es so zu lösen:

var jsonFile = JsonConvert.DeserializeObject(json); 

foreach (JObject row in jsonFile) 
{ 
    row.Add("newKeyName", "value"); 
    row.Property("oldKey").Remove(); 
} 

Fügen Sie einfach und die Zeile entfernen, die jobject aktualisiert wird und so auch Ihre jsonfile.

Verwandte Themen