使用JACKSON或其他java lib更改JSON密钥的最佳方法

时间:2018-02-26 18:48:01

标签: java json scala jackson

我有一个Json文件或字符串,例如:

{
  "my-key0": "ke0",
  "key-Arr": [
    {
      "nested-key1": {
        "value": "val",
        "seqno": 12
      },
      "nested2": 1
    },
    {
      "dns-sss-qqq": [
        {
          "some": "aaaaa"
        }
      ]
    }
  ],
  "recsize": 459,
  "my-obj": {
    "my-key1": {
      "my-key2": "key2"
    }
  }
}

我的目的是取代" - " char to" _"仅在Scala / Java中的密钥中使用char。

首先,我认为可以使用REGEX完成,但键可以是UNQUOTED,它也可以影响值。 什么是最有效的方式?(性能是关键) 我必须处理这些记录的GB。 谢谢

1 个答案:

答案 0 :(得分:1)

尝试jsoniter-scala - it supports kebab-case since v0.17.0并且它在解析和序列化方面比jackson-module-scala更有效。

Here are latest results基准测试比较解析&使用JDK 8的jsoniter-scalajackson-module-scalacirceplay-json库的序列化性能。

它还能够parse streaming JSON values and JSON arrays from java.io.InputStream无需在内存中保存所有已解析的值。

提取一些选定的字段或子结构而不是解析整个消息或文档是jsoniter-scala闪耀的地方。

因此,请尝试使用它而不是转换所有数据。