gpt4 book ai didi

c# - c#中的双引号不允许多行

转载 作者:太空狗 更新时间:2023-10-29 23:59:40 25 4
gpt4 key购买 nike

例如

string str = "{\"aps\":{\"alert\":\"" + title + "" + message + "\"}}";

我需要把它写成可读性:

 string str = "
{
\"aps\":
{
\"alert\":\"" + title + "" + message + "\"
}
}";

如何实现,请指教。

最佳答案

如果您真的需要在字符串文字中执行此操作,我会使用逐字字符串文字(@ 前缀)。在逐字字符串文字中,您需要使用 "" 来表示双引号。我建议也使用内插字符串文字,以使 titlemessage 的嵌入更清晰。这确实意味着您需要将 {{}} 加倍。所以你会:

string title = "This is the title: ";
string message = "(Message)";
string str = $@"
{{
""aps"":
{{
""alert"":""{title}{message}""
}}
}}";
Console.WriteLine(str);

输出:

{
"aps":
{
"alert":"This is the title: (Message)"
}
}

但是,这仍然比使用 JSON API 简单地构建 JSON 更脆弱 - 例如,如果标题或消息包含引号,您最终会得到无效的 JSON。我只使用 Json.NET,例如:

string title = "This is the title: ";
string message = "(Message)";
JObject json = new JObject
{
["aps"] = new JObject
{
["alert"] = title + message
}
};
Console.WriteLine(json.ToString());

在 IMO 中, 更干净,也更健壮。

关于c# - c#中的双引号不允许多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44917680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com