json - Reflect vs Regex 检查 Golang 中的空 JSON 数组属性

标签 json regex performance go

我从我们的客户端收到一个属性为空的 JSON 数组:

[
  {},{},{},{},{}
]

通常它看起来像这样例如:

[
    {"Name": "foo", "Text": "Costumer"},
    {"Name": "foo", "Text": "Employer"},
    {"Name": "foo", "Text": "Costumer"},
    {"Name": "foo", "Text": "Emplopyer"},
    {"Name": "foo", "Text": "Employer"}
]

据我的老师所说,有两种可能的方法来检查这些空属性:

正则表达式包 && 反射包

我应该使用哪个来提高性能?

请解释为什么你会选择那个包而不是其他包

最佳答案

最高效和防错的方法是使用 json's Decoder.Token 自己手动解析 JSON token 。及相关方法。 这避免了 json 包对 Reflect 的正常使用完全(因为您没有解码为任意结构),并且它避免了容易出错的正则表达式。它的性能也可能优于正则表达式,但需要一个基准来确定。

但这将是一些冗长且可以说是丑陋的代码。

关于json - Reflect vs Regex 检查 Golang 中的空 JSON 数组属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48299385/

相关文章:

javascript - 如何将 SVG 附加到 <div>?

ios - 在 Swift 中使用 Alamofire 解析 JSON 响应

java - 空指针异常 : JSON Parsing in JAVA using GSON

javascript - 正则表达式 : match either of two conditions?

javascript - 处理正则表达式中的多种组合

c# - 7 秒 EF 启动时间,即使对于微小的 DbContext

ruby-on-rails - 使用 json (Rails) 创建新模型条目

javascript - 在文本中查找关键字

regex - 为什么 Scala 的组合器在解析大文件时解析速度很慢?我能做什么?

javascript - Service Worker 和页面性能