NaM*_*aMo 2 c# serialization json json.net
这是我的代码的一部分:
Dictionary<string, string[]> dict = new Dictionary<string, string[]>();
Run Code Online (Sandbox Code Playgroud)
我已将数据添加到字典中,并通过以下方式进行序列化:
JsonConvert.SerializeObject(dict)
Run Code Online (Sandbox Code Playgroud)
如果字符串数组中只有1个项目,我想将string []转换为string。
因此,如果输出为:
{
"Number": ["123"],
"Names": ["John", "Harry"]
}
Run Code Online (Sandbox Code Playgroud)
我希望它是:
{
"Number": "123",
"Names": ["John", "Harry"]
}
Run Code Online (Sandbox Code Playgroud)
由于“ 123”数组中只有1个项目。那么,如何解决呢?
一种方法是:
var newDict = dict.ToDictionary(x => x.Key,
x => x.Value.Length == 1 ? (object)x.Value.Single() : (object)x.Value);
Run Code Online (Sandbox Code Playgroud)
然后序列化newDict。
大部分逻辑在于第二个参数。我根据长度决定是使用KVP值部分的单个元素还是整个字符串数组。