【发布时间】:2021-09-26 09:42:21
【问题描述】:
如何将字符串列表转换为对象?
var flattenList = string.Join(",", jsonVars);
var convJsonVars = JsonConvert.SerializeObject(flattenList);
convJsonVars = "{" + convJsonVars + "}";
var emailData = JsonConvert.DeserializeObject<object>(convJsonVars);
我序列化flattenList后,结果如下:
"\"tenant_background_color\":\"#c41211\",\"tenant_logo_link\":\"https://imagelink.com\",\"tenant_font_color\":\"#FFFFFF\",\"tenant_name\":\"TNAME\",\"recipient_name\":\"User One\",\"login_link\":\"https://localhost:44330/\",\"verification_link\":\"https://localhost:44330/Link?Key=7b6c12fe-7658-45c5-a5c9-df9900231c6b-f7ea4ae9-3037-4dc5-98dd-e34a33770bb1\""
但是,当我尝试将其反序列化为对象类型并将其提交给 Sendgrids api 时,我总是收到错误消息,即我将字符串而不是对象类型传递给它们。
编辑:
这就是 jsonVars 现在的样子:
"\"tenant_background_color\":\"#c41211\""
它是一个字符串列表
【问题讨论】:
-
为什么,如果你想序列化一个对象,你的第一次是扁平化成一个字符串吗?最好只 Seralise jsonVars。
-
因为如果我序列化字符串列表,我会得到一个 Json 对象列表,而不仅仅是一个 Json 对象。
-
好的,但是这种方法也行不通。如果您向我们展示今天的 jsonVars 的外观,并且可能会举例说明您希望输出的外观如何,那将会很有用。这样我们才能看得更清楚,提供更好的帮助。
-
我编辑了我的问题以显示列表中的 1 个条目的外观。我只想要一个带花括号的对象。
-
提交给Sendgrids api,你用的是什么版本的API方法?
标签: c# asp.net-core .net-core