在powershell
3提示符下,我想调用RESTful服务,获取一些JSON,然后漂亮地打印它。我发现,如果将数据转换为powershell对象,然后再将powershell对象转换回json,则会得到一个漂亮的漂亮打印字符串。但是,如果我将这两个转换与一个管道组合成一个衬套,我将得到不同的结果。
TL; DR: 此:
PS> $psobj = $orig | ConvertFrom-JSON
PS> $psobj | ConvertTo-JSON
…给我的结果与此不同:
PS> $orig | ConvertFrom-JSON | ConvertTo-JSON
[
{
"Type": "1",
"Name": "QA"
},
{
"Type": "2",
"Name": "whatver"
}
]
我将删除空白(因此适合一行…),将其转换为powershell对象,然后将其转换回JSON。这样效果很好,并给了我正确的数据:
PS> $orig = '[{"Type": "1","Name": "QA"},{"Type": "2","Name": "DEV"}]'
PS> $psobj = $orig | ConvertFrom-JSON
PS> $psobj | ConvertTo-JSON
[
{
"Type": "1",
"Name": "QA"
},
{
"Type": "2",
"Name": "DEV"
}
]
但是,如果我将最后两个语句组合成一个直线,则会得到不同的结果:
PS> $orig | ConvertFrom-JSON | ConvertTo-JSON
{
"value": [
{
"Type": "1",
"Name": "QA"
},
{
"Type": "2",
"Name": "DEV"
}
],
"Count": 2
}
注意添加了键“值”和“计数”。为什么有区别?我确定它与返回JSON对象而不是返回JSON数组的愿望有关,但是我不明白为什么我进行转换的方式会影响最终结果。
解决方案是用括号将前两个操作包装起来:
PS C:\> ($orig | ConvertFrom-JSON) | ConvertTo-JSON
[
{
"Type": "1",
"Name": "QA"
},
{
"Type": "2",
"Name": "DEV"
}
]
括号使您可以一次获取前两个操作的输出。没有它们,powershell将尝试分别解析其获取的任何对象。PSCustomObject
从的结果集合$orig | ConvertFrom-JSON
包含两个PSCustomObjects
用于1 / QA和2 /
DEV的对,因此通过管道传递该集合的输出,powershell尝试一次处理键/值对。
使用括号是对输出进行“分组”的一种较短方法,使您可以在不进行变量的情况下对其进行操作。
问题内容: 我有下面的代码。我只想检查代码块的运行时间。错误地,我再次复制并粘贴了相同的代码,并得到了有趣的结果。尽管代码块相同,但运行时间不同。而且 比其他人花费更多的时间。如果我切换代码块,则代码块4将比其他代码花费更多时间。 我在代码块中使用了两种不同类型的数组来检查它是否依赖于此。结果是一样的。如果代码块具有相同类型的数组,则最上面的代码块将花费更多时间。参见下面的代码和给出的输出。 运行
我试图做一个函数,返回数组的长度,但函数总是返回8
这是代码: 如果我在我的机器()或这里()上尝试: 相反,这里(): 这是不同的。这是由于机器厄普西隆?还是编译器精度标志?还是不同的评估? 造成这种漂移的原因是什么?问题似乎出现在函数中(因为其他值似乎相同)。
在写 OTP input 组件时,发现 input 宽度为 0 时,Android 输入内容方向异常,下面是异常代码和操作步骤: 点击“开始输入”按钮后,键盘输入内容,iOS 系统下表现正常,Android 输入方向则是从右向左。 影响结果代码为 style="width: 0;",如果宽设置成非0,输入方向则正常。 是 Android 处理机制不同还是 BUG?
问题内容: 我想知道以下代码的行为背后的机制是什么: 我的理解是不 返回 函数,而是 关闭连接/结束请求 。这可以解释为什么我仍然可以在命令后执行代码(我查看了快速源,但它似乎不是异步函数)。 还有其他我可能会想念的东西吗? 问题答案: 当然可以结束HTTP响应,但是它对您的代码没有做任何特殊的事情。 即使您已结束回复,也可以继续做其他事情。 但是,您 无法 做的是利用进行任何有用的操作。由于响应
在安装并启用了ESlint和Prettier的Nuxt应用程序中,我切换到了Visual Studio代码。 当我打开一个.vue文件并按cmd+shift+p并选择格式化文档时,我的文件根本不会被格式化。 My.Prettierrc设置: 我有这么多的源代码行,所以我不能手动格式化它们。我做错了什么?