doson1998 2019-05-24 07:26
浏览 118

将JSON转换为字符串错误字符串文字未终止[重复]

This question already has an answer here:

When I try to run given code I get the error :: string literal not terminated (illegal character U+005C '\') . How do I fix the given code?

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\"
                }
            }
        }
    ]
}"

When I concat all the lines in one then it starts working::

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\"}}}]}"
</div>
  • 写回答

1条回答 默认 最新

  • dongxie559554 2019-05-24 07:36
    关注

    You are using an interpreted string literal which may not contain newlines! Spec: String literals:

    Interpreted string literals are character sequences between double quotes, as in "bar". Within the quotes, any character may appear except newline and unescaped double quote.

    Use a raw string literal so you don't even have to escape quotes, it will be much more readable, and newlines are allowed in raw string literals:

    Raw string literals are character sequences between back quotes, as in foo. Within the quotes, any character may appear except back quote.

    For example:

        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"
                    }
                }
            }
        ]
    }`
    

    You can also put everything in one line if you don't need indentation:

    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"}}}]}`
    

    Try it on the Go Playground.

    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料