go对象的创建和使用 orm map对象和List 时间 json get/post请求

这篇具有很好参考价值的文章主要介绍了go对象的创建和使用 orm map对象和List 时间 json get/post请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方法的回调线程

func MqMethodInit(ipPort string, groupName string, topic string, callback func(topic string, msg string)) {
	time.Sleep(2 * time.Second)
	Topic := "topic1"
	Body := []byte("线程回调处理")
	go callback(Topic, string(Body))
	fmt.Println("Rocketmq Consumer 初始化成功")
}
func UpOnofflineCallback(topic string, msg string) {
	fmt.Printf("%v:%+v \n", topic, msg)
}

func TestPageName(t *testing.T) {
	MqMethodInit("1", "groupName", "topic", UpOnofflineCallback)
}

1.对象的创建和使用

type Role struct {
	Id       string `json:"Id"`
	RoleName string `json:"RoleName"`
	State    uint   `json:"State"`
}
var u = new(Role)
var role Role
var data []Role
structObj := Role{}

2.对象和orm的使用

func TestSelectOne(t *testing.T) {
	//query := "sn" + " = ?"
	
	var u = new(Role)
	Gormdb.Table("role").Where("role_id", int64(1)).Find(&u)
	b, err := jsoniter.Marshal(u)
	datajsonx, err := json.Marshal(u)
	if err != nil {
		fmt.Println("json marshal failed")
		return
	}
	fmt.Println("===", string(datajsonx), "==", string(b))
	fmt.Printf("%#v\n", u)

	var result = new(Role)
	Gormdb.Raw("SELECT role_id as Id, role_name as RoleName FROM role WHERE role_id = ?", int64(1)).Scan(&result)
	bx, _ := jsoniter.Marshal(result)
	fmt.Printf(string(bx))
}

2.集合的查询

GORM 指南 | 入门指南 |《GORM 中文文档 v2》| Go 技术论坛

func TestSelelctList(t *testing.T) {
	//创建一个对象
	//var role Role
	//Gormdb.AutoMigrate(&Role{})

	//var roleId rolePermission
	var data []Role
	Gormdb.Table("role").Select("role_name").Where("role_id", int64(1)).Find(&data) //.Scan(&roleId)
	b, _ := jsoniter.Marshal(data)
	fmt.Println(data, "==", string(b))
	Gormdb.Exec("update role set `state`=0 where role_id=1")
	Gormdb.Exec("update role set `state`=1 where role_id=1")
	//Gormdb.Table("role").Update("state", 0).Where("role_id", int64(1))
	/*Gormdb.First(&role, 1) // 根据整型主键查找
	//创建一个对象
	structObj := Role{}
	strKeys, err := utilsJson.Struct2KeysStr(structObj)
	if err != nil {
		fmt.Println("Error")
	}
	query := "id = ?"
	find := Gormdb.Select(strKeys).Where(query, "超级管理员").Find(&structObj)
	fmt.Println(find)
	fmt.Println("=========")*/

}

3.对象的创建

GoFrame gmap遍历hashmap listmap treemap使用技巧_Golang_脚本之家

m := gmap.New()
// 创建并发安全的int类型数组
a := garray.NewIntArray(true)

4.时间的工具类

HTTPClient-基本使用 - GoFrame (ZH)-Latest - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架文章来源地址https://www.toymoban.com/news/detail-848234.html

t := gtime.Now()
// 通过时间字符串创建
gtime.New("2020-10-24 12:00:00")
// 通过time.Time对象创建
gtime.New(time.Now())
// 去年今日,系统时间
	fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d"))

	// 去年今日,UTC时间
	fmt.Println(gtime.Now().AddDate(-1, 0, 0).Format("Y-m-d H:i:s T"))
	fmt.Println(gtime.Now().AddDate(-1, 0, 0).UTC().Format("Y-m-d H:i:s T"))

	// 下个月1号凌晨0点整
	fmt.Println(gtime.Now().AddDate(0, 1, 0).Format("Y-m-01 00:00:00"))

	// 1个小时前
	fmt.Println(gtime.Now().Add(-time.Hour).Format("Y-m-d H:i:s"))

gt1 := gtime.New("2018-08-08 08:08:08")

	fmt.Println(gt1.Format("Y-m-d"))
	fmt.Println(gt1.Format("l"))
	fmt.Println(gt1.Format("F j, Y, g:i a"))
	fmt.Println(gt1.Format("j, n, Y"))
	fmt.Println(gt1.Format("h-i-s, j-m-y, it is w Day z"))
	fmt.Println(gt1.Format("D M j G:i:s T Y"))

5.json转换

package utils

//https://www.jianshu.com/p/f797343eb04f

import (
	"fmt"
	"os"
	"strings"

	"github.com/json-iterator/go" // 引入
)

type ColorGroup struct {
	ID     int
	Name   string
	Colors []string
}

type Animal struct {
	Name  string
	Order string
}

func test01() {
	// ================= 序列化 =====================
	group := ColorGroup{
		ID:     1,
		Name:   "Reds",
		Colors: []string{"Crimson", "Red", "Ruby", "Maroon"},
	}
	b, err := jsoniter.Marshal(group)
	bb, err := jsoniter.MarshalIndent(group, "", " ")
	if err != nil {
		fmt.Println("error: ", err)
	}
	os.Stdout.Write(b)
	fmt.Println()
	os.Stdout.Write(bb)
	fmt.Println()

	// ===================  Deconde 解码 =================
	jsoniter.NewDecoder(os.Stdin).Decode(&group)
	fmt.Println(group)

	//encoder := jsoniter.NewEncoder(os.Stdout)
	//encoder.SetEscapeHTML(true)
	//encoder.Encode(bb)
	//fmt.Println(string(bb))

	// =================== 反序列化 =======================
	var jsonBlob = []byte(`[
        {"Name": "Platypus", "Order": "Monotremata"},
        {"Name": "Quoll",    "Order": "Dasyuromorphia"}
    ]`)
	var animals []Animal
	if err := jsoniter.Unmarshal(jsonBlob, &animals); err != nil {
		fmt.Println("error: ", err)
	}

	fmt.Printf("the unmarshal is  %+v", animals)

	// ======================= 流式 ========================
	fmt.Println()

	// 序列化
	stream := jsoniter.ConfigFastest.BorrowStream(nil)
	defer jsoniter.ConfigFastest.ReturnStream(stream)
	stream.WriteVal(group)
	if stream.Error != nil {
		fmt.Println("error: ", stream.Error)
	}
	os.Stdout.Write(stream.Buffer())

	fmt.Println()
	// 反序列化
	iter := jsoniter.ConfigFastest.BorrowIterator(jsonBlob)
	defer jsoniter.ConfigFastest.ReturnIterator(iter)
	iter.ReadVal(&animals)
	if iter.Error != nil {
		fmt.Println("error: ", iter.Error)
	}
	fmt.Printf("%+v", animals)

	fmt.Println()
	// ====================其他操作===================
	// get
	val := []byte(`{"ID":1,"Name":"Reds","Colors":
{"c":"Crimson","r":"Red","rb":"Ruby","m":"Maroon","tests":["tests_1","tests_2","tests_3","tests_4"]}}`)
	fmt.Println(jsoniter.Get(val, "Colors").ToString())
	fmt.Println("the result is ", jsoniter.Get(val, "Colors", "tests", 0).ToString())
	// fmt.Println(jsoniter.Get(val, "colors", 0).ToString())

	fmt.Println()
	hello := MyKey("hello")
	output, _ := jsoniter.Marshal(map[*MyKey]string{&hello: "world"})
	fmt.Println(string(output))

	obj := map[*MyKey]string{}
	jsoniter.Unmarshal(output, &obj)
	for k, v := range obj {
		fmt.Println(*k, " = ", v)
	}

}

// 自定义类型
// 序列化: 需要实现MarshellText
type MyKey string

func (m *MyKey) MarshalText() ([]byte, error) {
	// return []byte(string(*m)) , nil  // 针对序列化的内容不做任何调整
	return []byte(strings.Replace(string(*m), "h", "H", -1)), nil
}

func (m *MyKey) UnmarshalText(text []byte) error {
	*m = MyKey(text[:]) // 针对text不做处理
	return nil
}

6.get、post

go语言http请求(一)_go http import-CSDN博客

GO 发起HTTP请求调用接口_go-http-client/1.1-CSDN博客

HTTPClient-基本使用 - GoFrame (ZH)-Latest - GoFrame官网 - 类似PHP-Laravel, Java-SpringBoot的Go企业级开发框架

import (
	"fmt"
	"net/http"
	"io/ioutil"
)

func main(){
	response,err := http.Get("http://www.baidu.com")
	if(err!=nil){
		fmt.Println(err)
	}
	defer response.Body.Close()
	body,err := ioutil.ReadAll(response.Body)
	fmt.Println(string(body))
}

到了这里,关于go对象的创建和使用 orm map对象和List 时间 json get/post请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 原生js创建get/post请求以及封装方式、axios的基本使用

    原生js创建get请求 原生js创建post请求 原生get和post封装方式1 原生get和post封装方式2 axios的基本使用

    2024年02月21日
    浏览(42)
  • alibaba.fastjson的使用(三)-- Map、List ==》JSON字符串

    目录 1.使用到的方法为: 2. Map转JSON字符串 3. List转JSON字符串

    2024年02月08日
    浏览(46)
  • 使用PostMan使用post请求向后端发送json对象时报错

     报错信息:Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of com.itheima.domain.Book out of START_ARRAY token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of com.itheima.domain.Book out of START_ARRAY token  at

    2024年02月03日
    浏览(45)
  • spring boot 单元测试JUnit5使用MockMvc调用get请求,post请求,设置head请求头,解析返回值json和字符串

    spring boot 单元测试JUnit5使用MockMvc调用get/post接口 源码地址:https://gitcode.net/qq_39339588/springboot.git 1. 先准备一份controller,一会儿供测试调用 2. MockMvc测试调用get请求接口 两个注解说明 @SpringBootTest // 加测试类上,标明是测试的类 @AutoConfigureMockMvc // 支持对MockMvc对象的注入和配置,

    2024年02月14日
    浏览(53)
  • java http get post 和 发送json数据请求

    浏览器请求效果       main调用  

    2024年02月16日
    浏览(52)
  • java 对象list使用stream根据某一个属性转换成map的几种方式

    可以使用Java 8中的Stream API将List转换为Map,并根据某个属性作为键或值。以下是一些示例代码: 在这个示例中,将Person对象列表转换为Map,其中键为Person对象的name属性,值为Person对象本身。 在这个示例中,将Person对象列表转换为Map,其中键为Person对象本身,值为Person对象的

    2024年02月13日
    浏览(65)
  • 〔001〕虚幻 UE5 发送 get、post 请求、读取 json 文件

    打开 虚幻商城 ,搜索 varest 进行检索, varest 是一个 api 调用插件,支持 http/https 请求,也支持 json 文件的读取,最关键是该插件完全免费 点击第一个插件,将其安装到引擎中 安装好扩展后,需要在项目中开启扩展才可以使用 点击界面右上角的 设置 选择其中的 插件

    2024年02月06日
    浏览(39)
  • Postman发送post和get请求json数据,并用SpringBoot接受

    1. 在controller类中加入如下代码用于举例 TestContoller.java 这里有两个映射,一个是\\\"/test\\\",用于测试程序有没有成功,一个是\\\"/User\\\",为用户,存放用户的账户名和密码 2. 在dto中导入数据以封装数据 TestDto.java @Data在导入lombok插件和依赖后可以直接使用,可以起到简化代码的作用 在

    2023年04月09日
    浏览(47)
  • List<Map<String, Object>> 转List<T> list map对象转list对象

    我们在处理数据的时候,经常用到map对象转java对象。 要转换的对象 pom文件JSON包 : 如果此篇文章有帮助到您, 希望打大佬们能 关注 、 点赞 、 收藏 、 评论 支持一波,非常感谢大家! 如果有不对的地方请指正!!! 参考1 参考2

    2024年02月13日
    浏览(45)
  • flask获取请求对象的get和post参数

    get请求参数是在URL里面的,post请求参数是放在请求头里面的 浏览器访问 http://127.0.0.1:5000/get 自定义参数值,浏览器访问 http://127.0.0.1:5000/get?a=123 postman测试 使用 reques.values 同时获取get和post请求的参数: 这样的好处就是不用在代码里面区分get和post请求是用args和form来获取 验证

    2024年02月11日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包