V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  hellojukay  ›  全部回复第 2 页 / 共 3 页
回复总数  49
1  2  3  
252 天前
回复了 liuidetmks 创建的主题 程序员 一个特殊的 Json 『美化』工具
```golang
package main

import (
"encoding/json"
"fmt"
"io"
"os"
)

// recursivelyUnescapeJSON 递归处理嵌套的 JSON 字符串
func recursivelyUnescapeJSON(data interface{}) interface{} {
switch v := data.(type) {
case map[string]interface{}:
// 处理对象
result := make(map[string]interface{})
for key, value := range v {
if key == "v" {
// 特殊处理 "v" 字段中的 JSON 字符串
if strValue, ok := value.(string); ok {
var parsed interface{}
if err := json.Unmarshal([]byte(strValue), &parsed); err == nil {
result[key] = recursivelyUnescapeJSON(parsed)
continue
}
}
}
result[key] = recursivelyUnescapeJSON(value)
}
return result
case []interface{}:
// 处理数组
result := make([]interface{}, len(v))
for i, value := range v {
result[i] = recursivelyUnescapeJSON(value)
}
return result
case string:
return v
default:
return v
}
}

func main() {
// 从标准输入读取所有内容
input, err := io.ReadAll(os.Stdin)
if err != nil {
fmt.Fprintf(os.Stderr, "Error reading from stdin: %v\n", err)
os.Exit(1)
}

// 创建一个通用的 interface{} 来存储任意 JSON 数据
var data interface{}

// 将输入的 JSON 字符串解析为对象
if err := json.Unmarshal(input, &data); err != nil {
fmt.Fprintf(os.Stderr, "Error parsing JSON: %v\n", err)
os.Exit(1)
}

// 递归处理所有嵌套的 JSON 字符串
processed := recursivelyUnescapeJSON(data)

// 将对象重新转换为 JSON 字符串,使用缩进格式化
output, err := json.MarshalIndent(processed, "", " ")
if err != nil {
fmt.Fprintf(os.Stderr, "Error converting back to JSON: %v\n", err)
os.Exit(1)
}

// 输出结果
fmt.Println(string(output))
}

```
253 天前
回复了 lurui45 创建的主题 生活 家庭买车出资争议
你能保证你的这份工作干多久,回头看看你之前的工作都干了多久,不要因为这点事情就换车。买新车就要出一笔钱,这笔钱多久能回本,完全不理智。
@MacsedProtoss apple tv 可以安装 Stash 配置上订阅地址就行了,后面开机就自动翻墙了,apple tv 也有爱奇艺客户端。
254 天前
回复了 lylijincheng 创建的主题 职场话题 是去是留?
留下来。
说的很好
257 天前
回复了 lysShub 创建的主题 Go 编程语言 配置文件升级怎么搞?
参考 nginx 怎么升级配置文件的
259 天前
回复了 zzerd 创建的主题 推广 自已家的赣南脐橙开卖,给 v 友抽几箱
中奖专用评论
260 天前
回复了 Leon6868 创建的主题 程序员 现代化 SSH 客户端求推荐
sshpass 无敌了
按照如下优先级:
1. 攒钱给父母养老
2. 攒钱为家庭抵抗风险
3. 提高生活屏品质
260 天前
回复了 cat 创建的主题 问与答 有类似 SQLite 这种文件形式的时序数据库吗?
于是我想试试 github 上有没有轮子直接用,我打开了浏览器,输入 github 的网址,发现一直转圈,网页加载不出来,然后我意识到,github 可能被 Q 了,我可能需要先解决一下网络问题,于是我花了一天的时间学习 FQ 教程,购买 vps , a 安装代理,配置 clash , 终于在自己的电脑上搭建好了网络,我成功打开了 github , 搜索项目,按照 stars 数量排名,我一个一个的看 README 说明介绍 , 找到了一个项目,看起来好像能满足的我需求,我 clone 到本地,打算跑起来,跑起来发现报错了,咦,怎么还依赖了 PG 数据库啊,我们公司用的是 mysql 啊,这可咋整,没办法,先搞个 PG 的容器跑起来再说吧,尝试从 dockerhub 下载镜像,网络报错了,靠,还需要找一个 dockerhub 的镜像仓库,我在网上找的镜像仓库全部都失效了,我开始在 QQ 群问大佬,有没有能用的 dockerhub 代理,大佬们告诉我,最近国内的代理都被要求关闭了,大佬们给我发了一个教程地址,让我直接配置 ~/.docker/config.json 。 终于,PG 测试数据库跑起来了,项目能运行了,打开项目首页,点击了一下,发现怎么报错了,这个报错我没有见过,看起来不太好解决,然后我到 github 的 issue 反馈问题,三天过去了,项目的作者还没有回复我,没有办法,只能自己看源码了,靠, 打开源码一看,vscode 标记了一对的 TODO 注解没有实现,好在我技术能力强,在一个通宵后,问题解决了,项目正常运行,能完美解决适配我们的需求,感觉自己老牛逼了,打开 CSDN 写篇博客记一下 《你永远不要小看 Rust 代码里的一个分号》
",https://x.com/blackanger/status/1854750502581633332 ...
线程池就是用来控制线程数量不暴涨的,如果系统上任务太多,每个任务都一个线程,那么如果突然来了大量任务,系统上线程数量就会暴涨,操作系统调度的基本单位是线程,那么操作系统大量时间都花在调度线程上,效率非常低,所有任务都不能得到高效的执行。

线程池保证了任务并发的数量,保证每个任务都能获得有效的 CPU 时间片段。
2023-06-02 18:34:53 +08:00
回复了 pathetique 创建的主题 Python 弱极了,请教 Python 多线程如何快速开始
1. list 如果长度非常的长,可能话很多时间在增长扩容上,建议使用 linklist
2. if xx in [] , 这种判断方式效率非常低,应该使用 hash 的方式
2023-01-29 11:50:33 +08:00
回复了 1800x 创建的主题 Go 编程语言 日志应该统一输出到 os.Stdout,还是 os.Stderr??
系统正常日志,输出到 os.Stdout, 系统错误日志输出到 os.Stderr , linux 上命令行程序的日志都是这个规则。
2023-01-10 16:19:46 +08:00
回复了 HashV2 创建的主题 NAS 入坑 NAS 是选择 diy 还是选择成品?
推荐绿联的 DX4600
2023-01-10 16:19:32 +08:00
回复了 HashV2 创建的主题 NAS 入坑 NAS 是选择 diy 还是选择成品?
推荐绿联的 D4600
1  2  3  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4654 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 47ms · UTC 09:50 · PVG 17:50 · LAX 02:50 · JFK 05:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.