【问题标题】:How can I Serialize my class in json body? [closed]如何将参数放入 json 正文中? [关闭]
【发布时间】:2021-10-02 00:51:55
【问题描述】:

我有这个代码字符串,我需要从表单中输入我的字段,你尝试使用带有“++”的 concat 但是,不工作..我使用 c# 和 nugget RestClient

var body = @"{
" + "\n" +
        @"    ""CompanyDB"":""VARIABLE "",
" + "\n" +
        @"    ""UserName"":""VARIABLE "",
" + "\n" +
        @"    ""Password"":""VARIABLE ""
" + "\n" +
        @"}";

【问题讨论】:

  • 我使用替换,但我想优化
  • BUT DONT WORK 是什么意思?您面临什么问题? VARIABLE 这里是什么?你能分享你试过的代码吗?
  • 顺便说一句,我强烈建议您使用 JSON 库来创建或解析 JSON - 例如,如果某人的用户名包含反斜杠,这只是在询问问题。

标签: c# string variables


【解决方案1】:

就这么简单:

    var VARIABLE = "Hello";
    var body = @"{
" + "\n" +
        $@"    ""CompanyDB"":""{VARIABLE} "",
" + "\n" +
        $@"    ""UserName"":""{VARIABLE} "",
" + "\n" +
        $@"    ""Password"":""{VARIABLE} ""
" + "\n" +
        @"}";

它甚至可以更简单:

    var body = $@"{{

    ""CompanyDB"":""{VARIABLE} "",

    ""UserName"":""{VARIABLE} "",

    ""Password"":""{VARIABLE} ""

}}";

【讨论】:

  • 我知道这可能是 ez,但我很复杂 jaajj ,太复杂了@Enigmativity
  • @Ignacio - JSON 的答案比我的要好。
【解决方案2】:

我建议使用 JSON 序列化程序构建 JSON,因为它更不容易出错。

使用 JSON.NET:

var body = JsonConvert.SerializeObject(new {
    CompanyDB = "abc",
    UserName = "def",
    Password = "ghi"
});

如果您出于某种原因需要使用换行符格式化响应,您可以将Formatting.Indented 作为第二个参数传递给SerializeObject

Try it online

使用 System.Text.Json:

var body = JsonSerializer.Serialize(new {
    CompanyDB = "abc",
    UserName = "def",
    Password = "ghi"
});

如果您出于某种原因需要使用换行符格式化响应,您可以将new JsonSerializerOptions() { WriteIndented = true } 作为第二个参数传递给Serialize

Try it online

【讨论】:

  • 恕我直言,这也不太容易出错,如果处理 json,这两个选项之一是最好的。您正在处理一个采用 json 的 restclient,不要通过创建粘合在一起的字符串来破解方法。
猜你喜欢
  • 2012-11-28
  • 2017-10-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
相关资源
最近更新 更多