Skip to content

Latest commit

 

History

History
126 lines (84 loc) · 5.3 KB

CHANGELOG_zh-cn.md

File metadata and controls

126 lines (84 loc) · 5.3 KB

变更日志

English

v1.4.1

  • 新增 v.At(...).Set(...) 模式, 相比 v.Set(...).At(...) 模式不同的是将 key 放在前面

v1.4.0

  • 在 Get, Set, Append, Insert, Delete 等方法中, 允许传递一个切片参数, 用来标识 key 链
  • 添加 GreaterThan, LessThan, GreaterThanOrEqual, LessThanOrEqual 方法用于数字比较

v1.3.8

  • 修复 Issue #30

v1.3.7

  • 修复 Issue #29

v1.3.6

  • 修复一个浮点数符号的 bug
  • 修复 Issue #27

v1.3.5

  • 修复 Issue #26

v1.3.4

发布 jsonvalue v1.3.4,相比 v1.3.3:

  • 添加 *jsonvalue.V 对以下接口的支持, 使之可以适配 encoding/json:
    • json.Marshalerjson.Unmarshaler
    • encoding.BinaryMarshalerencoding.BinaryUnmarshaler
  • ImportNew 函数支持导入实现了 json.Marshalerencoding.TextMarshaler 的数据类型, 就像 encoding/json 一样 (#24)
  • 添加 MustAdd, MustAppend, MustInsert, MustSet, MustDelete 等方法, 这些方法不返回子值和 error 信息
    • 可以避免 golangci-lint 的警告提示
  • Bug 修复: 当 Append(xxx).InTheBeginning() 时, 实际上追加到了末尾
  • 在 Unmarshal 时, 通过预估对象 / 数组大小的方式预创建空间, 略微提升一点点速度, 以及节省平均约 40% 的 alloc 数

v1.3.3

发布 jsonvalue v1.3.3,相比 v1.3.2:

  • 发布英文 wiki
  • 修复了 #19 和 #22。

v1.3.2

发布 jsonvalue 1.3.2,相比 1.3.1,主要是修复了 #17

v1.3.1

发布 jsonvalue 1.3.1,相比 1.3.0,改动如下:

  • 支持获取 object 类型的键(key)的顺序
  • 按照 key 被设置的顺序进行 object 的序列化
  • 当序列化时,如果遇到 ASCII 的非可打印字符(包括控制字符),均进行 \u00XX 转义

具体说明情参见 wiki

v1.3.0

发布 v1.3.0,相比 v1.2.x,改动如下:

  • 不再默认转义 % 字符
  • 支持与原生 json 的转换,也即支持从 struct 和其他类型中导入为 jsonvalue 类型,也支持将 jsonvalue 导出到 Go 标准类型中
  • 支持类泛型操作,最直接的影响就是 Set, Append, Insert, Add, New 等函数可以传入任意类型
  • 新增 OptIndent 函数以支持可视化锁进

具体说明情参见 wiki

v1.2.1

发布 v1.2.1,相比 v1.2.1,改动如下:

  • Marshal 时,允许不转义斜杠符号 '/',参见 OptEscapeSlash 函数。
  • Marshal 时,允许不转义几个 HTML 关键符号 (issue #13)。参见 OptEscapeHTML 函数
  • Marshal 时,对于大于 \u00FF 的字符,允许保留 UTF-8 编码,而不进行转义。参见 OptUTF8 函数
  • Append(...).InTheBeginning()Append(...).InTheEnd() 操作时,支持自动创建不存在的层级。但 insert 操作依然不会自动创建,这一点请留意
  • 支持设置默认序列化选项,请参见 SetDefaultMarshalOptions 函数

其他变更:

  • CI 弃用 Travis-CI,改用 Github Actions

v1.2.0

发布 v1.2.0,相比 v1.1.1,改动如下:

  • 修复不支持科学计数法浮点数的 bug(issue #8
  • 添加详细的中文 wiki
  • Marshal 时的额外参数配置,原使用的是 Opt 结构体,现推荐改为使用一个或多个 OptXxx() 函数
  • 发布第一个不向前兼容的变更: 修改 NewFloat64NewFloat32 的入参
    • 原函数的 prec 变量及相关功能改由 NewFloat64fNewFloat32f 承担。
  • 添加 ForRangeArrForRangeObj 以取代 IterArrayIterObject 函数,参见 wiki
  • 支持 SetEscapeHTMLissue11
  • 当浮点值中出现 +/-NaN+/-Inf 时,支持进行特殊转换以符合 JSON 标准

v1.1.1

发布 v1.1.1,相比 v1.1.0,变更如下:

  • 无论是否错误,所有返回 *jsonvalue.V 的函数都不会返回 nil。如果错误发生,那么至少会返回一个有效的 *V 实例,但是 Type 等于 NotExist
    • 这样一来,程序员可以在代码中放心地直接使用返回的 *V 对象,简化代码,而忽略不必要的错误检查。
  • 支持 MustGet 函数,只返回 *V 而不返回 error 变量,便于一些级联的代码。
  • ValueType 类型支持 String() 函数。