当我尝试运行给定的代码时,出现错误::字符串文字未终止(非法字符U + 005C'\')。如何修复给定的代码?
payload := "{
\"key_id\":\"3\",
\"contacts\":[
{
\"external_id\":\"chandan4u1990@gmail.com\",
\"data\":{
\"global\":{
\"name\":\"Adoni Mishra\"
}
}
},
{
\"external_id\":\"chandankumarc@airasia.com\",
\"data\":{
\"global\":{
\"name\":\"CHANDAN KUMAR\"
}
}
}
]
}"
当我将所有行合并在一起时,它开始工作::
payload := "{\"key_id\":\"3\",\"contacts\":[{\"external_id\":\"chandan4u1990@gmail.com\",\"data\":{\"global\":{\"name\":\"Adoni Mishra\"}}},{\"external_id\":\"chandankumarc@airasia.com\",\"data\":{\"global\":{\"name\":\"CHANDAN KUMAR\"}}}]}"
答案 0 :(得分:0)
您使用的是解释的字符串文字,其中可能不包含换行符! Spec: String literals:
解释的字符串文字是双引号之间的字符序列,例如
"bar"
。在引号内,任何字符都可能显示除换行符和未转义的双引号。
使用原始字符串文字,这样您甚至不必转义引号,它将更具可读性,并且在原始字符串文字中允许使用换行符:
原始字符串文字是反引号之间的字符序列,例如
foo
。在引号内,除反引号外,任何字符都可能出现。
例如:
payload := `{
"key_id":"3",
"contacts":[
{
"external_id":"chandan4u1990@gmail.com",
"data":{
"global":{
"name":"Adoni Mishra"
}
}
},
{
"external_id":"chandankumarc@airasia.com",
"data":{
"global":{
"name":"CHANDAN KUMAR"
}
}
}
]
}`
如果不需要缩进,也可以将所有内容放在一行中:
payload := `{"key_id":"3","contacts":[{"external_id":"chandan4u1990@gmail.com","data":{"global":{"name":"Adoni Mishra"}}},{"external_id":"chandankumarc@airasia.com","data":{"global":{"name":"CHANDAN KUMAR"}}}]}`
在Go Playground上尝试。