Skip to content

📊 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

基于 MIT 许可证发布