json - 在powershell中,是否可以将这样的字符串“name:eric,city:tokyo”转换为json?
问题描述
我正在使用 powershell,并且我有一个类似的字符串"name:eric,city:tokyo"
,是否可以将其转换为 json,如下所示:
{
"name":"eric",
"city":"Tokyo"
}
我尝试使用convertto-json
cmdlet,但可以找到一种方法来做到这一点。
解决方案
最简单的方法是解析字符串中的属性,转换为一些自定义对象类型,然后将此对象传递给ConverTo-Json
. "name:eric,city:tokyo" | ConvertTo-Json
不推荐使用,因为它不知道如何将字符串评估为 JSON 。它也不会返回有效的 JSON,这不是你想要的。下面有一些方法可以代替您执行此操作。
方法一:
将项目手动插ordered
入哈希表对象,然后通过管道传输到ConverTo-Json
:
$s = "name:eric,city:tokyo"
$items = [ordered]@{}
$s.Split(",") | ForEach-Object {
$key, $value = $_.Split(":")
$items[$key] = $value
}
$items | ConvertTo-Json
方法二:
使用 a PSCustomObject
,类似于方法 1:
$s = "name:eric,city:tokyo"
$psobject = New-Object -TypeName PSObject
$s.Split(",") | ForEach-Object {
$key, $value = $_.Split(":")
$psobject | Add-Member -NotePropertyName $key -NotePropertyValue $value
}
$psobject | ConvertTo-Json
方法三
不要将数据存储在字符串中,而是将数据预设在哈希表PSCustomObject
或ordered
哈希表中。然后转换很容易。
[PSCustomObject]@{
name = "eric"
city = "tokyo"
} | ConvertTo-Json
[ordered]@{
name = "eric"
city = "tokyo"
} | ConvertTo-Json
所有这些都会导致:
{
"name": "eric",
"city": "tokyo"
}
推荐阅读
- reactjs - 从一个类中获取数据以使其成为 stackNavigator 选项卡的标题?
- python-2.7 - CodeHS 真的很奇怪的问题
- sql-server - SSIS SQL任务不返回字符串日期
- sql - SAS proq SQL:有条件地求和和折叠行
- python - 使用 cython 从多个 pyx 文件制作可执行文件
- python - Pandas groupby 然后填充缺失的行
- python - 用具有相似属性的项目的平均值替换属性零值
- vim - 在终端中从剪贴板复制到 vim 时注入意外字符
- html - Boostrap 4 选项卡只能工作一次,当返回上一个选项卡时,内容是不可见的
- solr - 有没有办法克服 Solr 的限制