Go语言技术文章
-
围绕Go Goldmark自定义Badge节点说明Kind定义、HTML回调注册、进入与离开事件及文本转义,用固定v1接口示例区分节点构造和渲染职责。246 收藏 -
Go Goldmark 默认不渲染 Markdown 中的原始 HTML,原因在 HTML renderer 的安全选项。本文说明 html.WithUnsafe 的职责、受信任模板的配置方式,以及不可信内容为什么不能直接开启。372 收藏 -
用 Go Goldmark 的 ast.Walk 遍历 Markdown AST,提取 Heading 层级和纯文本,生成可用于目录、侧栏和锚点的结构。174 收藏 -
解释Go SJSON原地替换的字节长度条件、len与cap差异及返回切片所有权,给出独立输入示例和可复现分配基准,避免把成功替换误当成零分配。473 收藏 -
Go Goldmark 默认按 CommonMark 解析 Markdown,表格语法需要显式接入 extension.Table。本文用一个最小 Go 示例说明 v1 的配置方式、Table 与 GFM 的选择、对齐输出和 v2 API 的迁移边界。119 收藏 -
Go SJSON 追加数组元素时,路径末尾使用 -1,例如 items.-1。本文拆开说明它与具体下标、越过数组末尾和数字对象键的区别,并给出可直接改写 JSON 的示例。408 收藏 -
Go SJSON 的 Set 会把 Go 值按 JSON 规则编码,SetRaw 则直接写入原始 JSON 片段。本文用数字、字符串、数组和对象示例说明两者的类型边界,并给出动态 raw 输入的校验方案。107 收藏 -
已有 JSON 对象需要嵌入另一个 JSON 时,SJSON 应使用 SetRaw 或 SetRawBytes,而不是把对象当普通字符串传给 Set。本文从类型边界、原始片段校验和审计记录三个方面给出可落地写法。435 收藏 -
SJSON 的 SetRaw 需要一个非空路径,空路径会返回 path cannot be empty,因此它不适合直接替换完整根 JSON。本文区分根文档替换、根对象字段写入和嵌套字段更新,并给出 SetRawBytes 的选择方式。405 收藏 -
GJSON 的 Float() 返回 float64,大于 2^53 的整数不能都被浮点数精确表示。本文对比 Result.Raw、String、Float、Int 和 Uint,说明订单号、用户 ID 等大整数应该怎样读取。243 收藏 -
Go GJSON 的数组条件查询中,#(...) 取第一个匹配项,#(...)# 才会收集全部匹配项。本文用同一份数据对比两种路径的返回形态、Go 代码读取方式、空结果边界和接口设计取舍。242 收藏 -
GJSON 的 Exists 判断字段是否存在,空字符串判断的是字符串内容;缺失、null、空串和非空串并不是同一种状态。本文用一段最小 Go 示例说明四种状态的差异,并给出输入校验与审计时的选择方式。380 收藏 -
Go GJSON 读取多个不同路径时,不需要为每个字段重复处理整段 JSON。本文用 Parse 和 Result.Get 复用一次解析结果,再说明数组投影、多路径对象、缺失字段与类型转换的边界。311 收藏 -
介绍GJSON读取点号键名的路径转义写法,区分Go字符串与GJSON语法,并用完整示例说明动态组件转义、字段白名单和缺失结果处理。111 收藏 -
Go GJSON 处理 JSON 数组时,可以用 #.字段提取所有元素的同名字段,用条件查询后再投影,或用多路径一次构造只包含指定键的对象。本文给出当前写法、缺失字段处理和旧查询语法迁移边界。312 收藏