C# JSON字符串的平面字典?
我有一本字典如下:C# JSON字符串的平面字典?,c#,.net,C#,.net,我有一本字典如下: private readonly Dictionary<string, string> _packetData; 我注意到它并没有在字符串的两端加双引号,而是这样做的 {"test":test123} 我做错了什么?输出中没有引号,因为您的格式字符串中没有包含引号,就像您使用键一样。我已经删除了您的括号([和]),因为它们表示JSON中的数组值,并且您的字典中有字符串值,因此不需要使用string.Join() var entries = _packetDat
private readonly Dictionary<string, string> _packetData;
我注意到它并没有在字符串的两端加双引号,而是这样做的
{"test":test123}
我做错了什么?输出中没有引号,因为您的格式字符串中没有包含引号,就像您使用键一样。我已经删除了您的括号(
[
和]
),因为它们表示JSON中的数组值,并且您的字典中有字符串值,因此不需要使用string.Join()
var entries = _packetData.Select(d => string.Format("\"{0}\": [\"{1}\"]", d.Key, string.Join(",", d.Value)));
我还建议您使用Newtonsoft的优秀库,您可以在nuget上找到它。使用库而不是滚动您自己的实现更可靠,通常更安全,并且通常意味着您不需要编写那么多代码。在这种情况下,它将非常简单:
JsonConvert.SerializeObject(_packetData);
这将[]置于其周围,这会改变什么?请提供解释和您的答案。这是我遇到的第三个。如果其中一个值包含一个
“
,您希望发生什么?只需使用newtonsoft.json库。不要使用自己的json序列化程序。使用newtonsoft的json.NET
var entries = _packetData.Select(d => string.Format("\"{0}\": \"{1}\"", d.Key, d.Value));
JsonConvert.SerializeObject(_packetData);