🔍 ParseComposerShowJSON
解析 composer show <package> --format=json 的 JSON 输出,返回结构化的 PackageInfo。
何时使用
当你已经拿到了 composer show 的 JSON 原始输出字符串,需要把它转成 Go 结构体以便程序化读取包名、版本、依赖、作者等字段时使用。它是 ShowPackageInfo 内部调用的解析器。
签名
go
func ParseComposerShowJSON(output string) (*PackageInfo, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
output | string | composer show <package> --format=json 的原始输出 |
返回值
*PackageInfo:包信息结构体,含Name、Version、Description、Authors、Require、Source、Dist等字段。error:JSON 反序列化失败时返回错误(内部委托ParsePackageInfo)。
示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
output := `{"name":"symfony/console","version":"v5.4.0","description":"Symfony Console Component"}`
info, err := composer.ParseComposerShowJSON(output)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s %s\n", info.Name, info.Version)
}进阶
- 🔄 本函数等价于
ParsePackageInfo(output),二者可互换使用。 - 🚀 若希望一步到位执行命令并解析,用
ShowPackageInfo(packageName),它内部Run("show", pkg, "--format", "json")后调用本解析器。 - 📋 同系列解析器:
ParseComposerOutdatedJSON、ParseComposerAuditJSON、ParseDependencyTreeJSON。