V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  body007  ›  全部回复第 1 页 / 共 22 页
回复总数  440
1  2  3  4  5  6  7  8  9  10 ... 22  
@tsanie 我也觉得小乌龟非常好用,但貌似只有 window 才有,有时候我会把 Linux 目录映射到 window 上,然后用小乌龟 https://i.imgur.com/agAJ0Rd.png
所以支付宝的钱我每月还信用卡了,慢慢还总会还完的。
@hyzyxmj 我已经放弃 wsl 了,主要问题就是网络,遇到过编写程序无法监听 tcp 端口需要重启 winnat 服务的情况,没用 wsl 的时候不会出现。
https://i.imgur.com/F7L8EPV.png

试试关闭防火墙的 wsl 配置。
@ZeroDu #19

```go
package main

import (
"bytes"
"fmt"

jsoniter "github.com/json-iterator/go"
)

func main() {
s := `
[
"com.test.UserInfo",
{
"userName": "13123",
"email": "[email protected]",
"roleIds": [
"java.util.ArrayList",
[
"109","209","309"
]
]
}
]`
var (
cnf = jsoniter.ConfigCompatibleWithStandardLibrary

buf bytes.Buffer
out = jsoniter.NewStream(cnf, &buf, 512)
)

recursivelyRemoveTypes(out, jsoniter.ParseString(cnf, s).ReadAny())
err := out.Flush()
if err != nil {
panic(err)
}

fmt.Println(buf.String())
}

func recursivelyRemoveTypes(out *jsoniter.Stream, data jsoniter.Any) {
switch data.ValueType() {
case jsoniter.ArrayValue:
if ds := data.Size(); ds > 0 {
if ds == 2 {
if data.Get(0).ToString() != "" {
recursivelyRemoveTypes(out, data.Get(1))
return
}
}

out.WriteArrayStart()
for i := 0; i < ds; i++ {
if i > 0 {
out.WriteMore()
}
recursivelyRemoveTypes(out, data.Get(i))
}
out.WriteArrayEnd()
} else {
out.WriteEmptyArray()
}
case jsoniter.ObjectValue:
if ks := data.Keys(); len(ks) > 0 {
out.WriteObjectStart()
for i, k := range ks {
if i > 0 {
out.WriteMore()
}
out.WriteObjectField(k)
recursivelyRemoveTypes(out, data.Get(k))
}
out.WriteObjectEnd()
} else {
out.WriteEmptyObject()
}
default:
data.WriteTo(out)
}
}
```

@a132811 你这个递归提醒了我,可以用上面方法不用解析 json 和序列化 json ,性能应该不错。
15 天前
回复了 Hawthorne 创建的主题 macOS 大家都用哪个键唤醒系统?
移动鼠标。
我这边是用 github.com/json-iterator/go 这个库的 jsoniter.Get 方法,示例如下,我是默认 "com.test.UserInfo" 和 "java.util.ArrayList" 这类数据都在第 0 项里面,所以用 data.Get(1) 取第 1 项。

```go
package main

import (
"fmt"

jsoniter "github.com/json-iterator/go"
)

func main() {
s := `
[
"com.test.UserInfo",
{
"userName": "13123",
"email": "[email protected]",
"roleIds": [
"java.util.ArrayList",
[
"109","209","309"
]
]
}
]`
data := jsoniter.Get([]byte(s), 1)
var (
userName = data.Get("userName").ToString()
email = data.Get("email").ToString()

roleIds []string
)
data.Get("roleIds", 1).ToVal(&roleIds)
fmt.Printf("userName: %s, email: %s, roleIds: %#v\n", userName, email, roleIds)
}
```
@pdf01 我给的这个仓库有国际化,支持中文额。
29 天前
回复了 BlackSnow 创建的主题 微信 换机微信记录迁移
要不试试微信:我 -> 设置 -> 聊天 -> 聊天记录迁移与备份
32 天前
回复了 v2zzzzz 创建的主题 Linux 2025 年了,大家服务器用的什么 Linux 版本
Debian
已经从 wsl2 换回 VMware 虚拟 Linux 了。最大的问题就是网络,遇到有些问题甚至需要防火墙放通 wsl 网卡才行。有时候还会使得 window 写的 go 程序无法监听端口,只能重启 winnat 服务才正常,没用 wsl 时都没遇到这种问题。
https://i.imgur.com/lWqVBuv.png

用这个,添加了配置同步功能。
45 天前
回复了 145431 创建的主题 生活 南方冬天又冷又费钱😭
来深圳,在家还能传短袖短裤。
太厉害了。
微信:我->设置->通用->辅助功能-> QQ 邮箱提醒,绑定一下邮箱。然后用代码通过别的邮箱给这个 QQ 邮箱发邮件,然后微信就来通知了。
52 天前
回复了 94nb 创建的主题 生活 明天和意外,你永远不知道哪个会先来
加油,住早日康复。
52 天前
回复了 sunzhuo 创建的主题 加密货币 能直接用国内信用卡买加密货币吗?
支付宝和微信都可以,你说呢。
1  2  3  4  5  6  7  8  9  10 ... 22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   973 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 21:34 · PVG 05:34 · LAX 13:34 · JFK 16:34
Developed with CodeLauncher
♥ Do have faith in what you're doing.