「単純な」シナリオがあります。JSONファイルを読み取り、値の一部をフィルタリングまたは変更し、元の形式を変更せずに結果のjsonを書き戻します。
したがって、たとえばこれを変更するには:
{
"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
]
]
]
}
}
]
}
これに:
{
"type": "FeatureCollection",
"crs": {
"type": "EPSG",
"properties": {
"code": 28992
}
},
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates":
[
149886.192,
374554.705
]
}
}
]
}
とりわけnewtonsoftによるJSON.Netを試しましたが、これを見つけることができるのは次のとおりです。
- オブジェクトに読み込む
- オブジェクトをjsonに書き込む
しかし、「オブジェクトの変更」ステップがありません。ヒントはありますか?
アップデート
これが私がこれまでに試したことです:
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";
}
ただし、これはgeoType変数の値のみを変更します。ジオメトリ内の値も変更することを期待していました。コピーではなく、参照が必要です!これは可能ですか?
アップデート
私は現在このプロジェクトを離れていますが、回答者にフィードバックを送りたいと思います。Shahinのシンプルさが好きですが、LBのより正式なアプローチの方が少し好きです。私は個人的に関数型コードとして文字列値を使用するのは好きではありませんが、それは私だけです。私が両方の答えを受け入れることができれば:私はそうします。Shahinは、「ただ」の賛成で期限を迎える必要があると思います。