C # Bearbeiten von JSON-Daten

Ich habe ein 'einfaches' Szenario: Lies eine JSON-Datei, filtere oder ändere einige der Werte und schreibe den resultierenden JSON zurück, ohne die ursprüngliche Formatierung zu ändern.

So zum Beispiel, um dies zu ändern:

{
  "type": "FeatureCollection",
  "crs": {
    "type": "EPSG",
    "properties": {
      "code": 28992
    }
  },
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              149886.192,
              374554.705
            ],
            [
              149728.583,
              374473.112
            ],
            [
              149725.476,
              374478.215
            ]
          ]
        ]
      }
    }
  ]
}

Das sehr gut finden:

{
  "type": "FeatureCollection",
  "crs": {
    "type": "EPSG",
    "properties": {
      "code": 28992
    }
  },
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": 
            [
              149886.192,
              374554.705
            ]
      }
    }
  ]
}

Ich habe unter anderem JSON.Net von newtonsoft ausprobiert, aber das einzige, was ich finden kann, ist:

in Objekt einlesenSchreiben Sie ein Objekt an json

Aber mir fehlt der Schritt "Objekt ändern". Irgendwelche Hinweise?

Aktualisieren

Folgendes habe ich bisher versucht:

JToken contourManifest = JObject.Parse(input);

JToken features = contourManifest.SelectToken("features");

for (int i = 0; i < features.Count(); i++)
{
    JToken geometry = features[i].SelectToken("geometry");
    JToken geoType = geometry.SelectToken("type");
    JToken coordinates = geometry.SelectToken("coordinates");

    geoType = "Point";
}

Dies ändert jedoch nur den Wert der geoType-Variablen. Ich hatte erwartet, den Wert zu ändernInnerhalb auch die Geometrie. Ich brauche eine Referenz, keine Kopie! Ist das möglich?

Aktualisieren

Ich bin gerade von diesem Projekt ausgeschlossen, möchte aber den Antwortenden mein Feedback geben. Obwohl ich die Einfachheit von Shahin mag, mag ich den formaleren Ansatz von L.B. ein bisschen besser. Ich persönlich mag es nicht, Zeichenfolgenwerte als Funktionscode zu verwenden, aber das bin nur ich. Wenn ich beide Antworten akzeptieren könnte: Ich würde. Ich denke, Shahin muss sich mit 'nur' einer Gegenstimme begnügen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage