gpt4 book ai didi

json - 如何获取Newtonsoft.Json反序列化值的未转义字符串值?

转载 作者:行者123 更新时间:2023-12-02 04:58:28 31 4
gpt4 key购买 nike

我正在尝试解析一些仅由 (string,string) 对组成的 JSON 对象。我正在解析的文件包含这个。我想要模拟 resjson 行为。

{
"first_key": "first_value",
"unicode": "\u0040 @"
}

我做的是

string path = @"d:\resjson\example.resjson";
string jsonText = File.ReadAllText(path);

IDictionary<string, string> dict;
try
{
dict = JsonConvert.DeserializeObject<IDictionary<string, string>>(jsonText);
}
catch(Exception ex)
{
// log or something
}

当我获得字典对象时,

foreach (var pair in _dict)
{
string key = pair.Key;
string value = pair.Value;

Console.WriteLine("Key = '{0}', Value = '{1}'", key, value);
}

这对我来说是输入:

"Key = 'first_key', Value = 'first_value'"
"Key = 'unicode', Value = '@ @'"

一旦 Newtonsoft.Json 反序列化对象,我就会丢失“\u0040”字符串,而且我无法知道原始文件的样子。有没有办法保留字符转义?

最佳答案

好吧,一个简单的想法是在将原始文本传递给解析器之前转义所有反斜杠:

dict = JsonConvert.DeserializeObject<IDictionary<string, string>>(
jsonText.Replace(@"\", @"\\"));

关于json - 如何获取Newtonsoft.Json反序列化值的未转义字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19226064/

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