使用powershell将csv转换为json

时间:2017-04-21 12:27:19

标签: powershell

我有一个csv文件,当我使用convertto-json转换它时,我收到以下错误

  

ConvertTo-Json:转换后的JSON字符串格式错误。在线:1   焦炭:70   + Get-Content -path E:\ test.csv | ConvertFrom-Csv -Delimiter','| ConvertTo-J ...   + ~~~~~~~~~~~       + CategoryInfo:InvalidOperation:(@ {name = WebError.Show; data = 1}:PSObject)[ConvertTo-Json],   出现InvalidOperationException       + FullyQualifiedErrorId:JsonStringInBadFormat,Microsoft.PowerShell.Commands.ConvertToJsonCommand

当我使用-compress与convertto-json我得到输出,但它是一个难看的压缩json版本,有没有更好的方法将此csv转换为json或有一种方法来解压缩json

CSV:

name,data
Play,http://{gho}.domain.com/
BDomain,domain.com
Charts,2
Compress,0
CompressJ,0
WebError.Show,1

压缩的Json输出:

[{"name":"Play","data":"http://{gho}.domain.com/"},{"name":"BDomain","data":"domain.com"},{"name":"Charts","data":"2"},{"name":"Compress","data":"0"},{"name":"CompressJ"
,"data":"0"}]

2 个答案:

答案 0 :(得分:0)

使用ConvertFrom-Csv和ConvertTo-Json以及您的示例字符串,我似乎没有任何问题。

使用:

"name,data
Play,http://{gho}.domain.com/
BDomain,domain.com
Charts,2
Compress,0
CompressJ,0" | ConvertFrom-Csv | ConvertTo-Json

给我:

[
    {
        "name":  "Play",
        "data":  "http://{gho}.domain.com/"
    },
    {
        "name":  "BDomain",
        "data":  "domain.com"
    },
    {
        "name":  "Charts",
        "data":  "2"
    },
    {
        "name":  "Compress",
        "data":  "0"
    },
    {
        "name":  "CompressJ",
        "data":  "0"
    }
]

你能发布给你错误的PowerShell代码吗?

答案 1 :(得分:0)

"name1 1234567890"
"name2 2345678901"
"name3 3456789012"

这可能适合你。