gpt4 book ai didi

c# - 使用 Json.Net 序列化为键值字典?

转载 作者:太空狗 更新时间:2023-10-30 00:34:44 25 4
gpt4 key购买 nike

您好,我正在尝试将一个对象序列化为一个散列,但我没有得到我想要的结果。

代码:

class Data{
public string Name;
public string Value;
}
//...
var l=new List<Data>();
l.Add(new Data(){Name="foo",Value="bar"});
l.Add(new Data(){Name="biz",Value="baz"});
string json=JsonConvert.SerializeObject(l);

当我这样做时,json 结果值为

[{"Name":"foo","Value":"bar"},{"Name":"biz","Value":"baz"}]

然而我想要的结果是这样的:

[{"foo":"bar"},{"biz":"baz"}]

我如何让 JSON 像那样出来?

最佳答案

在方法的最后一行试试这个:

string json = JsonConvert.SerializeObject(l.ToDictionary(x=>x.Name, y=>y.Value));

结果:{"foo":"bar", "biz":"baz"}

对于结果:[{"foo":"bar"},{"biz":"baz"}] 你可以这样做...

string json = JsonConvert.SerializeObject(new object[]{new {foo="bar"}, new {biz = "baz"} });

string json = JsonConvert.SerializeObject(new object[]{new Data1{foo="bar"}, new Data2{biz = "baz"} });

第一个结果采用相同的数据类型,因此结果是同一数组的一部分。二是不同的数据类型,所以得到不同的数组

关于c# - 使用 Json.Net 序列化为键值字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6862177/

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