📊 FundWithJSON
以结构化 JSON 格式获取项目中可捐赠包的资金信息,返回解析后的 []FundingInfo。
何时使用
当你要在应用内程序化展示资金链接、生成资助清单页面,或对资金信息做进一步处理时使用。相当于执行 composer fund --format=json 并自动解析。
签名
go
func (c *Composer) FundWithJSON() ([]FundingInfo, error)参数
该方法不接受任何参数。
返回值
[]FundingInfo:资金信息切片。每项含包名Name、链接URLs、是否声明资金Funding。error:执行命令或解析 JSON 失败时返回相应错误信息。
FundingInfo 结构:
go
type FundingInfo struct {
Name string `json:"name"`
URLs []string `json:"urls"`
Funding bool `json:"funding"`
}示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("初始化失败: %v", err)
}
fundingInfo, err := comp.FundWithJSON()
if err != nil {
log.Fatalf("获取资金信息失败: %v", err)
}
for _, info := range fundingInfo {
if info.Funding {
fmt.Printf("包: %s\n", info.Name)
for _, url := range info.URLs {
fmt.Printf(" - %s\n", url)
}
}
}
}进阶
- 该方法是
GetFundingURLs的实现基础。 - 若只需纯文本输出,使用
Fund。 - 只需布尔判断用
HasFunding。 - 指定包查询用
FundWithPackage,自定义选项用FundWithOptions。