gpt4 book ai didi

c# - 传递给字典时字符未正确转义

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:14 24 4
gpt4 key购买 nike

在这被标记为重复之前,另一个具有相似名称的问题与正则表达式相关并且与我的问题不同。

我有字符串

Principal = "{\"id\":\"number\"}"

如果我没记错的话,这应该转义为 {"id":"number"}

但是,当我将它传递给下面的方法时

Dictionary<string, object> folder = new Dictionary<string, object>();
folder.Add("Principal", Principal);
string json = JsonConvert.SerializeObject(folder);
Console.WriteLine(json);

它返回为

{
"Principal":"{\"id\":\"number\"}"
}

理想情况下我希望它返回

{
"Principal":{"id":"number"}
}

为什么要保留引号和转义字符?我在这里做错了什么?

最佳答案

您的 Principal 是一个字符串,因此会作为一个字符串进行转义。

如果您想将其转义为 JSON 对象,则它也需要是您应用程序中的一个对象。

如果你还想反序列化它或者多次使用它,我建议在一个类中定义你的对象。如果没有,您可以只使用匿名对象:

Dictionary<string, object> folder = new Dictionary<string, object>();
folder.Add("Principal", new { id = "number" });
string json = JsonConvert.SerializeObject(folder);
Console.WriteLine(json);

/edit:这是一个非匿名类:

类定义:

class Principal
{
public string id { get; set; }
}

用法:

Dictionary<string, object> folder = new Dictionary<string, object>();
folder.Add("Principal", new Principal(){ id = "number" });
string json = JsonConvert.SerializeObject(folder);
Console.WriteLine(json);

关于c# - 传递给字典时字符未正确转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43239531/

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