4

这个正则要怎么写呢?一个不标准的 json 字符串,想要手动给他修改正确

 2 years ago
source link: https://www.v2ex.com/t/868341
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

这个正则要怎么写呢?一个不标准的 json 字符串,想要手动给他修改正确

  morri · 12 小时 15 分钟前 · 1070 次点击

已经完成了键的修改,没把加""的都加上了, 但值要如何正则给加上""呢?

func TestMakeToJsonStr(t *testing.T) {
	str := `{label  :用户 id,searchType:1,hide:1,disabled:1,required:1,options:1:yes:tag-info,2:no:tag-danger}`
	// 替换所有空格
	// 处理 key 未加""的内容字段
	replace, _ := gregex.Replace(`\s`, []byte(""), []byte(str))
	replace, _ = gregex.Replace(`label|"label"`, []byte(`"label"`), replace)
	replace, _ = gregex.Replace(`fieldType|"fieldType"`, []byte(`"fieldType"`), replace)
	replace, _ = gregex.Replace(`searchType|"searchType"`, []byte(`"searchType"`), replace)
	replace, _ = gregex.Replace(`editHide|"editHide"`, []byte(`"editHide"`), replace)
	replace, _ = gregex.Replace(`addHide|"addHide"`, []byte(`"addHide"`), replace)
	replace, _ = gregex.Replace(`hide|"hide"`, []byte(`"hide"`), replace)
	replace, _ = gregex.Replace(`disabled|"disabled"`, []byte(`"disabled"`), replace)
	replace, _ = gregex.Replace(`required|"required"`, []byte(`"required"`), replace)
	replace, _ = gregex.Replace(`comment|"comment"`, []byte(`"comment"`), replace)
	replace, _ = gregex.Replace(`options|"options"`, []byte(`"options"`), replace)
	// 处理值未加个""的字段
	fmt.Println(string(replace))
}

现在的执行结果

{"label":用户 id,"searchType":1,"hide":1,"disabled":1,"required":1,"options":1:yes:tag-info,2:no:tag-danger}

注明 键就是那几个是固定的


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK