首页 > 解决方案 > 在序列化之前将 string[] 转换为字符串

问题描述

这是我的代码的一部分:

Dictionary<string, string[]> dict = new Dictionary<string, string[]>();

我已将我的数据添加到字典中,并通过以下方式对其进行序列化:

JsonConvert.SerializeObject(dict)

如果字符串数组中只有一项,我想将字符串 [] 转换为字符串。

所以如果输出是:

{
"Number": ["123"],
"Names": ["John", "Harry"]
}

我希望它是:

{
"Number": "123",
"Names": ["John", "Harry"]
}

由于“123”数组中只有一项。那么,如何解决这个问题呢?

标签: c#jsonserializationjson.net

解决方案


一种方法是:

var newDict = dict.ToDictionary(x => x.Key, 
    x => x.Value.Length == 1 ? (object)x.Value.Single() : (object)x.Value);

然后连载newDict

大部分逻辑在于第二个论点。我根据长度决定是使用 KVP 值部分的单个元素,还是使用整个字符串数组。


推荐阅读