GoDB开发踩坑记(代码实现)

2023-05-16

前言

之前写了一篇GoDB开发踩坑记但是内容有些不全,所以来补充一下。所以没看过GoDB开发踩坑记的可以先看一下那篇文章。

正文

golang

encode_josn——把map[string]interface{}转换为json字符串

这里用到了encoding/json包(请自行引入)中的json.Marshal函数,代码如下:

func encode_json(data map[string]interface{})(string){
	js,_:=json.Marshal(data);
	return string(js);
}

decode_json——把json字符串转换为map[string]interface{}

这里用的也是encoding/json这个包,但用的是json.Unmarshal函数,代码如下

func json_decode(str string)(map[string]interface{}){
	data:=make(map[string]interface{});
	json.Unmarshal([]byte(str),&data);
	return data;
}

js_to_govar——把js变量表达式字符串转换成go语言变量

用到了json_decode函数(上面写的),代码如下:

func js_to_govar(str string)(interface{}){
	str=fmt.Sprintf("{\"data\":%v}",str);
	js:=Decode(str);
	return js["data"];
}

govar_to_js——把go语言变量转换成js变量表达式

用到了json_encode函数(上面写的,方法比较猥琐),代码如下:

func govar_to_js(data interface{})(string){
	js:=make(map[string]interface{});
	js["data"]=data;
	str:=Encode(js);
	return str[8:len(str)-1];
}

这方法够猥琐吧(:

js_format——格式化js变量表达式字符串

这里使用了govar_to_js以及js_to_govar函数(都是上面有的),代码如下:

func js_format(str string)(string){
	return govar_to_js(js_to_govar(str));
}

javascript

toStr——把js变量转换为js变量表达式的字符串

这个方法和govar_to_js一样猥琐,但是很实用,用了JSON.stringify函数(这个是自带的,不用导入任何包),代码如下:

function toStr(v){
    var data={};
    data["v"]=v;
    var str=JSON.stringify(data);
    console.log(str)
    return str.substring(5,str.length-1);
}

总结

大家有什么意见和建议可以写在评论区内。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GoDB开发踩坑记(代码实现) 的相关文章

  • Redis的事务

    一 Redis的事务是什么 xff1f 可以一次执行多个命令 xff0c 本质是一组命令的集合 一个事务中的所有命令都会序列化 xff0c 按顺序地串行化执行而不会被其它命令插入 xff0c 不许加塞 作用 xff1a 一个队列中 xff0
  • Redis的发布订阅

    一 Redis的发布订阅 进程间的一种消息通信模式 xff1a 发送者 xff08 pub xff09 发送消息 xff0c 订阅者 xff08 sub xff09 接收信息 订阅 发布消息图 xff1a 二 订阅 发布消息常用命令 PSU
  • Redis的复制(Master/Slave)

    一 Master Slave Replication 主从复制 主机数据更新后 xff0c 根据配置和策略 xff0c 自动同步到从 xff08 备 xff09 机的master slave机制 xff0c Master以写为主 xff0c
  • JVM入门学习记录

    一 JVM体系结构概述 xff11 JVM位置 xff08 JVM是运行在操作系统之上的 xff0c 它与硬件没有直接的交互 xff09 xff0c 如下图所示 xff1a 2 JVM的体系结构图 1 3 类装载器ClassLoader 类
  • 【笔记】IRC期待有缘人

    我在irc freenode net建了一个聊天室 oneroom xff0c 期待有缘人一起划水 xff01
  • office 2019 & visio 2016安装

    安装包和相关工具 xff1a visio 2016 专业版 xff1a office 2019 xff1a 相关工具 xff1a 安装步骤 xff1a visio 2016 和 office 2019 安装存在问题 xff0c 笔者安装遇到
  • 记MySQL中如何删除某个字段中的某个字符

    问题描述 xff1a 问题 xff1a 项目中对以逗号分隔的字符串进行指定字符修改删除时 xff0c 会导致其它字符无法使用 原因分析 xff1a SQL语句拼写错误 遗漏replace 中的第三个参数 xff0c 漏写了 xff0c 错误
  • wsl(win11安装Ubuntu) 安装问题

    项目场景 xff1a win 11 安装 Ubuntu 20 04 4报错 问题描述 Installing this may take a few minutes WslRegisterDistribution failed with er
  • WSL2-Debian启动docker(failed to start daemon: Error initializing network controller: error obtaining)

    项目场景 xff1a 原文地址 win11 安装Ubuntu 222 04LST WSL2 Debian启动docker报错 failed to start daemon Error initializing network control
  • 记一次压测Feign调用时Hystrix could not be queued for execution and no fallback available.

    项目场景 xff1a 同事压测时反馈仅支持10个用户的并发量 问题描述 通过查看日志 xff0c 可以看到一下关键报错信息 xff1a could not be queued for execution and no fallback av
  • Mysql截取字符串(含指定字符串)

    项目场景 xff1a 在将数据落地到数据库后 xff0c 应业务需求 xff0c 需要截取特定数据用作另一字段值 xff1b 如 xff1a 现有字段areaName值为 xff1a 海南省东方市 xff0c 现想将areaName省份信息
  • element cannot be mapped to a null key

    问题描述 原文地址element cannot be mapped to a null key java span class token punctuation span lang span class token punctuation
  • VMware 17 Pro安装(升级)

    文章目录 前言一 下载安装1 下载地址2 安装流程 前言 本文演示如何在windowns 10下 安装 xff08 升级 xff09 VMware 17 Pro 一 下载安装 1 下载地址 VMware 17 Pro 2 安装流程 如下图所
  • VMware 安装CentOS7

    文章目录 前言一 CentOS 7镜像下载二 VMware 创建CentOS 71 CentOS 7创建2 CentOS 7配置3 总结 前言 前文已完成对VMware 的升级 xff0c 我们需要在VMware Workstation创建
  • npm install npm ERR! Error: EPERM: operation not permitted 解决方法记录

    问题描述 执行npm install安装依赖时报错如下 xff1a 解决方案 xff1a 删除C Users 账户 下的 npmrc文件 npmrc文件即可 注意 xff1a 不是nodejs安装目录npm模块下的那个npmrc文件
  • java swing 常用的三种布局方式:边界布局、流布局、网格布局管理器

    作者 xff1a firstmiki 链接 xff1a http www cnblogs com firstmiki p 6340001 html 来源 xff1a firstmiki的博客 著作权归作者所有 xff0c 转载请联系作者获得
  • Linux(CentOS 7)配置静态ip及ping 不通外网问题

    前言 日常学习中 xff0c 如果Linux中安装了MySQL nacos redis等中间件 我们可能会通过navicat dataGrip连接MySQL 会通过ip port nacos访问nacos 会通过ip port连接redis
  • docker run启动镜像容器时忘记添加开机自启动解决方法

    问题描述 在使用以下命令启动mysql容器时 xff0c 忘记添加了 restart 61 always 开启开机自启动 xff0c 导致每次开机 重启后 xff0c 需要重新通过一系列命令手动重启对应的容器 xff0c 极其不方便 doc
  • docker 安装RabbitMQ

    系列文章目录 第一章 RabbitMQ安装 提示 xff1a 写完文章后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一 RabbitMQ安装1 dockerHub 选择镜像2 Cent
  • 记 Content type ‘application/octet-stream‘ not supported

    项目场景 xff1a 实现一个入参方式为 64 RequestPart 43 64 RequestParam files 的接口 xff0c 即该接口要包含文件上传和其它 实体类 入参 示例代码 xff1a 64 PostMapping v

随机推荐

  • Go语言环境搭建

    一 下载开发工具 1 1 Go语言官网 1 2 进入Go官网 xff0c 点击Download xff0c 进入开发工具下载界面 xff0c 根据个人系统选择对应的安装包进行下载 windows 对应下载链接 二 安装开发工具 2 1 双击
  • Go入门教程--Hello,World.

    零 文本编辑器实现Hello World 官方给出的教程主要针对Linux 或Mac系统 但也没关系 xff0c 在windows 中实现也很简单 0 1 创建文件夹 xff0c 名称任意 xff0c 如 xff1a hello 0 2 创
  • 在AWS上开通EC2服务器并部署tomcat

    1 登录aws 2 点击服务 计算 EC2 3 点击启动实例 4 选择linux镜像 5 选择一个实例类型 6 配置实例详细信息 xff0c 保持默认 xff0c 点击下一步 7 添加存储 xff08 选择linux根目录硬盘大小和类型 x
  • android studio gradle 使用阿里源 (修改 settings.gradle)

    默认的地址下载速度极慢 依赖项几个小时也下载不完 改为 阿里源 1分钟就下载ok了 代码 修改根目录中 的 settings gradle 文件 内容 pluginManagement span class token punctuatio
  • 实用!Windows 远程控制 Ubuntu 系统

    点击上方 xff0c 选择 设为星标 优质文章 xff0c 及时送达 上一篇 xff1a 来源 xff1a 头条 互联网上的小蜘蛛 有时需要在实际的电脑上安装Ubuntu的操作系统来搭建免费的网站平台 这就需要使用远程的客户端Windows
  • 并查集——洛谷P3367

    题目描述 如题 xff0c 现在有一个并查集 xff0c 你需要完成合并和查询操作 输入输出格式 输入格式 xff1a 第一行包含两个整数N M xff0c 表示共有N个元素和M个操作 接下来M行 xff0c 每行包含三个整数Zi Xi Y
  • Web项目通过webservice编写一个接口,部署在远程服务器上

    在我的上一片文章中 xff0c 我在本地新建了一个普通的类来编写WebService xff0c 使用终端类 Endpoint 发布这个WebService xff0c 以此来实现让其他类调用这个接口 xff0c 实现接口中定义的功能 通过
  • ubuntu与win10共享LE蓝牙鼠标

    类似的教程网上有很多 xff0c 大部分是找到蓝牙设备目录下info文件中的 linkKey 中的key值复制到win10下注册表中 xff0c 但是对于蓝牙5 0或LE设备来说 xff0c 是没有linKey的 xff0c 这里我也参考了
  • FileZilla搭建FTP服务器图解教程,并允许外网访问NAT内网

    FTP是用来在两台计算机之间传输文件 xff0c 是Internet中应用非常广泛的服务之一 FTP服务是网络中经常采用的资源共享方式之一 FTP协议有PORT和PASV两种工作模式 xff0c 即主动模式和被动模式 今天我分享一个最近我自
  • 十进制转换八进制(C语言基础)

    题目描述编程 xff0c 输入一个 xff11 xff10 进制正整数 xff0c 然后输出它所对应的八进制数 输入无输出无样例输入10样例输出12 include lt stdio h gt int main int num m 61 0
  • 【Godot】对 Godot 节点设计的思考

    对 Godot 中节点设计的思考 单个节点的功能设计的想法 xff0c 体会 Godot 的设计思想 低耦合 设计单个节点可复用的节点时 xff0c 调用方法尽量只对当前节点可获取到的变量或方法进行使用 xff0c 比如我写一个可以控制 K
  • 【Godot】行为树(一)了解与设计行为树代码

    行为树介绍 行为树是个节点树 xff0c 父节点通过不断遍历子节点 xff0c 根据不同类型的节点执行不同的分支 最终调用叶节点执行功能 行为树也不难理解 xff0c 他就像代码逻辑一样 xff0c 只是用节点的方式展现出来 xff0c 而
  • 【Godot 4.0】一个简单的匿名方法的使用lambda

    Godot 4 0 beta3 Godot 4 0 中添加了 lambda 表达式 xff0c 匿名方法等很多方便的特性 xff0c 这里我写个用于扫描目录下所有文件的功能 可以看到代码非常简洁 span class token keywo
  • aur报错(错误:一个或多个文件没有通过有效性检查)

    当我们从aur里安装软件时 xff0c 有时会出现这种报错 xff08 如安装deepin wine wechat xff09 61 61 gt 错误 xff1a 一个或多个文件没有通过有效性检查 xff01 Error downloadi
  • Java使用不同方式获取两个集合List的交集、补集、并集(相加)、差集(相减)

    1 明确概念 首先知道几个单词的意思 xff1a 并集 61 union 交集 61 intersection 补集 61 complement 析取 61 disjunction 减去 61 subtract 1 1 并集 对于两个给定集
  • 【VTK】VTK框选表面拾取三角面片——通过观察者命令模式

    VTK框选拾取三角面片 最近需要实现拾取三角面片的交互功能 xff0c 看了官方示例和网友分享 xff0c 都是使用vtkInteractorStyleRubberBandPick搭配vtkAreaPicker 但是具体实现方法都是选择继承
  • 【VTK】VTK框选表面拾取面片——仅选中前表面

    VTK框选表面拾取面片 仅选中前表面 接上一篇 VTK框选表面拾取三角面片 通过观察者命令模式 上一篇最后遗留一个问题 xff0c 框选表面后 xff0c 会把模型背面的面片也一起选中 所以这篇内容是解决该问题的 效果预览 功能说明 通过鼠
  • GoDB开发踩坑记

    前言 前几天因为leancloud网速太慢所以自己写了一个go语言数据库 xff0c 想部署到我的树莓派上 正文 我在写的时候发现了一些神奇的操作 golang 把js变量的表达方式字符串转换成go变量 可以先把它嵌入到一个json字符串中
  • 通过Java反射获得对象里面的所有字段名以及字段对应的值

    首先我们有一个对象类 span class token keyword package span com span class token punctuation span xuzihui span class token punctuat
  • GoDB开发踩坑记(代码实现)

    前言 之前写了一篇GoDB开发踩坑记但是内容有些不全 xff0c 所以来补充一下 所以没看过GoDB开发踩坑记的可以先看一下那篇文章 正文 golang encode josn 把map string interface 转换为json字符