作者:AlbertWen
添加时间:2017-10-29 10:29:01
修改时间:2025-07-08 17:58:36
分类:
14.Golang/Ruby
编辑
golang 编码 json 还比较简单,而解析 json 则非常蛋疼。不像 PHP 一句 json_decode() 就能搞定。之前项目开发中,为了兼容不同客户端的需求,请求的 content-type 可以是 json,也可以是 www-x-urlencode。然后某天前端希望某个后端服务提供 json 的处理,而当时后端使用 java 实现了 www-x-urlencode 的请求,对于突然希望提供 json 处理产生了极大的情绪。当时不太理解,现在看来,对于静态语言解析未知的 JSON 确实是一项挑战。
定义结构
与编码 json 的 Marshal 类似,解析 json 也提供了 Unmarshal 方法。对于解析 json,也大致分两步,首先定义结构,然后调用 Unmarshal 方法序列化。我们先从简单的例子开始吧。
type Account struct {
Email string `json:"email"`
Password string `json:"password"`
Money float64 `json:"money"`
}
var jsonString string = `{
"email": "phpgo@163.com",
"password" : "123456",
"money" : 100.5
}`
func main() {
account := Account{}
err := json.Unmarshal([]byte(jsonString), &account)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", account)
}
作者:AlbertWen
添加时间:2017-10-29 09:01:38
修改时间:2025-07-08 17:58:21
分类:
14.Golang/Ruby
编辑
项目目录结构如何组织,一般语言都是没有规定。但 Go 语言这方面做了规定,这样可以保持一致性
1、一般的,一个 Go 项目在 GOPATH 下,会有如下三个目录:
|--bin
|--pkg
|--src
其中,bin存放编译后的可执行文件;pkg 存放编译后的包文件;src 存放项目源文件。一般,bin 和 pkg 目录可以不创建,go 命令会自动创建(如 go install),只需要创建src目录即可。
对于 pkg 目录,曾经有人问:我把 Go 中的包放入 pkg 下面,怎么不行啊?他直接把 Go 包的源文件放入了 pkg 中。这显然是不对的。pkg 中的文件是 Go 编译生成的,而不是手动放进去的。(一般文件后缀.a)
对于 src 目录,存放源文件,Go 中源文件以包(package)的形式组织。通常,新建一个包就在 src 目录中新建一个文件夹。
作者:AlbertWen
添加时间:2018-04-26 11:05:14
修改时间:2025-06-22 06:18:44
分类:
电脑/软件使用
编辑
作者:AlbertWen
添加时间:2018-06-13 15:59:19
修改时间:2025-07-07 05:46:40
分类:
08.Java基础
编辑
提示:
springframework里面带了一个 获取 md5的方法 DigestUtils.md5DigestAsHex()
作者:AlbertWen
添加时间:2017-10-29 20:57:58
修改时间:2025-07-22 06:07:34
分类:
14.Golang/Ruby
编辑
import (
"unicode"
)
func Ucfirst(str string) string {
for i, v := range str {
return string(unicode.ToUpper(v)) + str[i+1:]
}
return ""
}
func Lcfirst(str string) string {
for i, v := range str {
return string(unicode.ToLower(v)) + str[i+1:]
}
return ""
}
作者:AlbertWen
添加时间:2017-10-29 20:43:43
修改时间:2025-06-20 15:09:50
分类:
08.Java基础
编辑
Javadoc虽然是Sun公司为Java文档自动生成设计的,可以从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。但是Javadoc的注释也符合C的注释格式,而且doxyen也支持该种风格的注释。
官方文档:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javadoc.html
维基百科:https://en.wikipedia.org/wiki/Javadoc
Javadoc 的注释结构和 C 类似。都以/* 注释 */这种结构。
作者:AlbertWen
添加时间:2019-03-31 16:02:04
修改时间:2025-07-29 16:36:03
分类:
15.OpenResty_Lua
编辑
Nginx 子请求是一种非常强有力的方式,它可以发起非阻塞的内部请求访问目标 location。目标 location 可以是配置文件中其他文件目录,或 任何 其他 nginx C 模块,包括 ngx_proxy、ngx_fastcgi、ngx_memc、ngx_postgres、ngx_drizzle,甚至 ngx_lua 自身等等 。
作者:AlbertWen
添加时间:2017-10-27 10:00:40
修改时间:2025-07-08 17:54:15
分类:
13.C/C++/仓颉
编辑
Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。Linux则把两者继承了下来,如图示:

作者:AlbertWen
添加时间:2018-11-19 10:37:24
修改时间:2025-07-28 20:23:59
分类:
18.系统设计/UML建模
编辑
作者:AlbertWen
添加时间:2017-12-05 19:54:17
修改时间:2025-07-21 23:42:02
分类:
电脑/软件使用
编辑
新版 Firefox(v57.0) 改动非常大,不仅 UI 变漂亮了,性能也有质的提升,采用多进程多线程模式,但是先前我安装的插件现在基本不能用了,相关报道
Mozilla 最好正式版 Firefox 57 即将来袭!新特性一览
重新找到如下 想用、能用 的插件:
1. DragLinks,在线安装