- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的Powershell脚本中有此代码,在特殊字符部分上效果不佳。
$request = 'http://151.80.109.18:8082/vrageremote/v1/session/players'
$a = Invoke-WebRequest -ContentType "application/json; charset=utf-8" $request |
ConvertFrom-Json |
Select -expand Data |
Select -expand players |
Select displayName, factionTag | Out-file "$scriptPath\getFactionTag.txt"
最佳答案
Peter Schneider's helpful answer和Nas' helpful answer都解决了您的方法的一个问题:您需要:
.Content
返回的响应对象上的Invoke-WebRequest
属性,以获取返回的实际数据(作为JSON字符串),然后可以将其传递给ConvertFrom-Json
。 Invoke-RestMethod
,它直接返回数据并将其解析为自定义对象,因此您可以直接使用这些对象,而无需ConvertTo-Json
;但是,对于这种情况下的字符编码问题,这不是一个选择,因为需要对JSON字符串进行显式重新编码-参见下文。 charset
信息的
中,PowerShell会将以UTF-8编码的JSON字符串解释为ISO-8859-1 -encoded返回(自PowerShell 7.0起仍然适用)。charset=utf-8
字段中包括ContenType
。 $request = 'http://151.80.109.18:8082/vrageremote/v1/session/players'
$a = Invoke-WebRequest -ContentType "application/json; charset=utf-8" $request
# $a.Content now contains the *misinterpreted* JSON string, so we must
# obtain its byte representation and re-interpret the bytes as UTF-8.
# Encoding 28591 represents the ISO-8859-1 encoding - see https://docs.microsoft.com/en-us/windows/desktop/Intl/code-page-identifiers
$jsonCorrected = [Text.Encoding]::UTF8.GetString(
[Text.Encoding]::GetEncoding(28591).GetBytes($a.Content)
)
# Now process the reinterpreted string.
$jsonCorrected |
ConvertFrom-Json |
Select -expand Data |
Select -expand players |
Select displayName, factionTag | Out-file "$scriptPath\getFactionTag.txt"
关于powershell - Powershell ConvertFrom-Json编码特殊字符发行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53033242/
下面的test2和test3结果是不同的。 我对此感到困惑,因为它看起来像相同的逻辑,并且与linux bash ||逻辑不同。 $data = @( [PSCustomObject]@{St
在转换大小超过2MB的JSON字符串时,使用PowerShell v3时出现问题。 PowerShell使用的JSON序列化程序的默认限制设置为2MB,这说明了错误。 但是,当我在较小的集合上使用Co
我只是尝试使the scripting guy's example适应从文本文件读取数据并使用ConvertFrom-StringData解析哈希表: $PSVersionTable.PSVersio
我正在获取服务器的固件信息,并将其存储在变量$t中,但它以字符串的形式出现。我已经(几乎)成功地将其结构化为一个对象,以便将其导出为CSV,但是我需要一些帮助。 目前,我的主要问题是,似乎使用Conv
我正在加载一个包含一些Json的文本文件来编辑属性。但是,修改内容并将其写入文件后,Json变得无效。 我使用以下PowerShell修改文件: $manifest = Get-Content $Pa
尝试发送api请求并遍历响应,但是似乎我的响应没有反序列化到对象。 这是我在invoke-Webrequest之后得到的响应: {"isSuccess": true, "value": null, "
使用学生文本名称 Infinity 执行以下代码将返回无穷大符号而不是实际文本。任何人都可以解释为什么会这样以及可以做些什么来纠正。 $person="Infinity,One" $personspl
我的Powershell脚本中有此代码,在特殊字符部分上效果不佳。 $request = 'http://151.80.109.18:8082/vrageremote/v1/session/play
我在使用 Convertfrom-String cmdlet 时遇到问题 $value = 'something:009' $value | ConvertFrom-String -Delimiter
我有一个看起来像这样的json文件(test.json): { "root": { "key":"value" } } 我正在使用类似这样的东西将其加载到pow
This question already has an answer here: Not all properties displayed (1个答案) 12个月前关闭。 以下声明 '[{"A":1
我正在尝试解析以下 JSON: StatusCode : 0 StatusDescription : Content : {123, 10, 32, 32...} R
使用Powershell命中Web服务,并使用ConvertFrom-Json将响应转换为对象。但是,该对象是使用无法从Powershell代码访问的属性名称创建的。 如何访问属性的属性值?我什至不应
考虑以下 json 负载(只是“az 组列表”中的示例片段): [ { "id": "/subscriptions/1f512sf9-112c-4a7a-a580-665afe
为什么以下两个片段会产生不同的输出? Get-Content -Raw "test.json" | ConvertFrom-Json | %{ Write-Output "MessageTyp
我正在编写一个需要解析JSON的脚本,并且在某些文件中出现错误。错误的原因是无效的JSON,这很好,但是我希望能够检测到该错误并在脚本中处理它。好像ConvertFrom-Json不支持-ErrorA
我正在PowerShell中处理JSON文件,似乎ConvertFrom-Json仅在某些(很少)情况下更改其输入的大小写。 例如,当我这样做时: $JsonStringSrc = '{"x":2.2
我对 PowerShell 还很陌生,并且有以下代码: $jsonResponse = @" { "departments":[{"id":81,"department":"Sales"},{"id"
看起来我期望的工作方式并没有实现。我想要返回多个对象,但它似乎只返回一个。我无法做到这一点。 一个非常简单的 JSON 文件: { "$schema": "https://schema.manag
似乎我忽略了一些简单的事情,但我继续在几种不同的解析文本文件的方法上出错。 (在下面的代码中,我使用文本变量而不是文件。)我错过了什么? 要解析的文本(模拟 TXT 数据文件)是: $testText
我是一名优秀的程序员,十分优秀!