【问题标题】:How do I replace a double quote in json string and regular expressions?如何替换 json 字符串和正则表达式中的双引号?
【发布时间】:2017-05-01 18:56:36
【问题描述】:

如何替换 json 字符串和正则表达式中的双引号?

输入Json是:

"RegDateTime" : 1481641851263, "Code":"123213",....

输出应该是:

"RegDateTime" : "1481641851263", "Code":"123213",....

我只想修复 RegDateTime 的 json 键值。
请建议任何正则表达式并用 go 语言中的双引号替换。

【问题讨论】:

  • 这是错误的思考方式。那是一个数字。您正在将数字转换为字符串......不仅仅是“替换引号”。
  • 只是转换成字符串。
  • @JeffMercado 其他方式。他想将数字输入转换为字符串表示形式。
  • 我必须修复异常例程的 json 字符串。我必须同时处理两种类型的json
  • 我不认为正则表达式是这里的方法。如果您尝试将数据放入 Go 结构中,我会将“RegDateTime”设置为 interface{},然后在需要时使用类型断言将数字转换为字符串

标签: json regex go


【解决方案1】:
func ReplaceAllNumber(json string)(string) {
    re := regexp.MustCompile("(:\\s*)(\\d+)(\\s*[,}\\]])")
    return re.ReplaceAllString(json, "$1\"$2\"$3")
}


func ReplaceNumberWithField(json string, fieldName string)(string) {
    regString := fmt.Sprintf("(\"%s\"\\s*:\\s*)(\\d+)(\\s*[,}\\]])", fieldName)

    re := regexp.MustCompile(regString)
    return re.ReplaceAllString(json, "$1\"$2\"$3")
}

Run Online

【讨论】:

  • 谢谢chaoluo... 这个方法怎么样?? re, _ := regexp.Compile("(RegDateTime\"):([0-9]+)") 结果:= re.ReplaceAllString(json, "$1:\"$2\"")
  • 你只需要替换一个特殊的字段吗?
  • ...我的方法是替换所有数字字段,所以你可以更改为一个特殊的字段,这很容易。
  • OK,那是特殊领域
  • 如果这解决了您的问题,请您点击左箭头并接受答案,我缺少3名声望?谢谢。
猜你喜欢
  • 2012-09-10
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 2016-08-20
相关资源
最近更新 更多