Я читаю данные из файла json через powershell с конечной целью обновления указанного файла. Мне нужно разделить данные на порцию, которую я хочу сохранить, и порцию, которую я хочу обновить, и, чтобы еще больше усложнить ситуацию, место, где мне нужно разбить текст, меняется в цикле foreach, поэтому мне нужна эта часть для приходят из переменной.
Я пробовал .split/-split
и .replace/-replace
во многих конфигурациях, но кажется, что это сложнее, чем можно было бы предположить в powershell .
Все перечисленные ниже файлы в одной папке.
Json (json.json):
{
"Section1": {
"Heading1": [
"Thing1",
"Thing2"
]
},
"Section2": [
"Thing1",
"Thing2"
]
}
Powershell (powershell.ps1):
$originalJsonString = Get-Content -Path ".\json.json"
$SplitTarget = "Section2"
$JsonString = {This is the part that I am iffy about}
Write-Output $JsonString
Вывод, который я хочу получить из приведенного выше, будет
{
"Section1": {
"Heading1": [
"Thing1",
"Thing2"
]
},
Я перепробовал практически все, что я могу придумать в отношении разделения и замены, но все же решение намекает на меня.
Обратите внимание на решение выше, что важным фактором является то, что $originalJsonString
делится (или что-то еще) на $ SplitTarget, а не "Section2", поскольку это также является фактором в моем уравнении.
Я спрашиваю впервые, поэтому, если я что-то делаю не так, прошу прощения.
Спасибо.
Edit:
Справедливо, если я добавлю причину, по которой я не преобразую объект.
Синтаксис, который экспортирует powershell при преобразовании json в объект и обратно, нежелателен для моего использования.
Однако, если использование объекта является ЕДИНСТВЕННЫМ способом, а разрезание исключено, то необходимо найти другое решение.
Спасибо.
Edit:
Если объекты были подходящим способом, в итоге я нашел более сложный способ форматирования .json так, как я этого хотел.
Спасибо всем.