You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ConvertFrom-Json未返回记录的技术求助

问题:使用ConvertFrom-Json处理Madden导出数据时未返回任何记录

我尝试解析一份Madden导出的JSON数据,原始数据的结构大致如下(部分内容省略):

StatusCode : 0
StatusDescription : 
Content : {123, 10, 32, 32...}
RawContent : Content-Length: 10276747
Content-Type: application/octet-stream
{
  "764411904": {
    "abbrName": "SF",
    "awayLosses": 1,
    "awayTies": 0,
    "awayWins": 0,
    "calen...
Headers : {[Content-Length, 10276747], [Content-Type, application/octet-stream]}
RawContentLength : 10276747

但执行ConvertFrom-Json后没有返回任何记录,我的脚本是这样的:

$request = 'C:\Users\mcmon\Desktop\Projects\Madden Exports\teams-42e.json'
Invoke-WebRequest $request | ConvertFrom-Json | select abbrName

原因分析

从你提供的JSON结构能看出来,这份数据的顶层是一个以球队ID为键的对象集合,而不是直接包含球队属性的数组或单个对象。直接用select abbrName的话,顶层对象并没有这个属性,所以自然返回空结果。另外,处理本地JSON文件用Invoke-WebRequest其实没必要,用Get-Content更直接高效。

解决方案

修改脚本如下,先读取文件内容转成JSON对象,再提取所有球队对象的集合,最后选择需要的属性:

$jsonPath = 'C:\Users\mcmon\Desktop\Projects\Madden Exports\teams-42e.json'
(Get-Content $jsonPath -Raw) | ConvertFrom-Json | Select-Object -ExpandProperty Values | Select-Object abbrName

解释一下:

  • Get-Content -Raw:一次性读取整个JSON文件的内容,避免逐行读取导致的JSON解析错误
  • Select-Object -ExpandProperty Values:提取顶层对象里所有的球队对象(也就是每个ID对应的内容),把它们转成一个集合
  • 最后Select-Object abbrName就能正常获取到所有球队的缩写名称了

内容的提问来源于stack exchange,提问作者jDave1984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:52:29