go json 数据 不确定结构打印

普通打印json数据

package main

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"log"
	"net/http"
)

func main() {
	// API 地址
	url := "https://jsonplaceholder.typicode.com/posts/1"

	// 发起 GET 请求
	resp, err := http.Get(url)
	if err != nil {
		log.Fatalf("HTTP 请求失败: %v", err)
	}
	defer resp.Body.Close()

	// 检查 HTTP 响应状态
	if resp.StatusCode != http.StatusOK {
		log.Fatalf("HTTP 请求失败,状态码: %d", resp.StatusCode)
	}

	// 读取响应体
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatalf("读取响应体失败: %v", err)
	}

	// 打印原始 JSON 数据
	fmt.Println("原始 JSON 数据:")
	fmt.Println(string(body))

	// 动态解析 JSON 数据
	var data map[string]interface{}
	if err := json.Unmarshal(body, &data); err != nil {
		log.Fatalf("解析 JSON 数据失败: %v", err)
	}

	//fmt.Println(data["id"])

	// 打印解析后的数据
	fmt.Println("\n解析后的数据:")
	for key, value := range data {
		fmt.Printf("%s: %v\n", key, value)
	}

}






判断返回数据包含哪个内容

// 将 body 转换为字符串
	bodyStr := string(body)

	// 检查是否包含关键字 "皇帝"
	if strings.Contains(bodyStr, "皇帝") {
		fmt.Println("检测到关键字 '皇帝',程序退出。")
		os.Exit() // 使用非零退出码表示异常退出
	}

打印json字符串某个值


其它


posted @ 2024-12-30 14:22  __username  阅读(21)  评论(0)    收藏  举报