C # Управление данными JSON
У меня есть «простой» Сценарий: прочитайте какой-нибудь файл 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
]
}
}
]
}
Я пробовал JSON.Net от newtonsoft среди других, но единственное, что я могу найти, это:
read into object write object to jsonНо я "пропускаю" изменить объект " шаг. Есть намеки?
Update
Вот что я пробовал до сих пор:
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. Я ожидал изменить значениеinside геометрия тоже. Мне нужна ссылка, а не копия! Это возможно?
Update
В настоящее время я не участвую в этом проекте, но я хотел бы дать свой отзыв авторам. Хотя мне нравится простота шахина, мне нравится более формальный подход Л.Б. Немного лучше. Мне лично не нравится использовать строковые значения в качестве функционального кода, но это только я. Если бы я мог принять оба ответа: я бы. Я предполагаю, что Шахин должен сделать должное с "просто" upvote.