0
votes

Existe-t-il un moyen de scinder les données JSON d'un fichier à PowerShell?

Je lise des données d'un fichier JSON via PowerShell fort>, avec l'objectif ultime de mettre à jour ledit fichier. J'ai besoin de scinder les données dans un morceau que je veux conserver et un morceau que je veux mettre à jour et de compliquer la matière plus loin, l'endroit où j'ai besoin de diviser le texte varie dans une boucle de foresach. J'ai donc besoin de cette partie proviennent d'une variable.

j'ai essayé .split / -split code> et .replace / -replit code> dans de nombreuses configurations, mais il semble que cela soit plus difficile que d'assumerait Dans PowerShell STRAND>. P>

Tous les fichiers ci-dessous dans le même dossier. P>

JSON (JSON.JSON): strong> P >

{
"Section1": {
    "Heading1": [
        "Thing1",
        "Thing2"
    ]
},


1 commentaires

Vous pouvez jouer avec -split regregs, mais vraiment le seul moyen fiable IMO convertit à l'objet. Après tout ... JSON est Notation d'objet JavaScript.


3 Réponses :


1
votes

Vous ne comprenez pas vraiment votre question, mais je convertirai le JSON en un objet, puis filtrez les sous-données et créez un fichier à nouveau

$obj = Get-Content json.json -raw | ConvertFrom-Json


0 commentaires

2
votes

Ce que vous devriez faire est de lire le fichier JSON à l'aide de:

{
    "Section1":  {
                     "Heading1":  [
                                      "Thing1",
                                      "Thing2"
                                  ]
                 },
    "Section2":  {
                     "Heading2":  [
                                      "Thing3",
                                      "Thing4"
                                  ]
                 }
}


2 commentaires

Vous êtes correct, mon Json était mauvais. Je serai sûr de le réparer tout de suite, merci. EDIT: Quelqu'un a déjà fait; p


@Graesholt. Bien fait. J'ai supprimé cette remarque de la réponse



0
votes

Si vous cherchez à isoler une section et à créer un nouveau fichier JSON, vous pouvez utiliser les éléments suivants:

$file = Get-Content .\json.json | ConvertFrom-Json
$file | Select-Object Section1 | ConvertTo-Json | Set-Content New.json


0 commentaires