您好我正在尝试将对象序列化为哈希,但我没有得到我想要的东西。
代码:
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像这样出现?
答案 0 :(得分:8)
请尝试使用方法的最后一行:
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"} });
OR
string json = JsonConvert.SerializeObject(new object[]{new Data1{foo="bar"}, new Data2{biz = "baz"} });
第一个结果假定数据类型相同,因此结果是同一个数组的一部分。第二种是不同的数据类型,因此您获得了不同的数组
答案 1 :(得分:0)
您可以创建自己的键值列表 喜欢
class mylist:Dictionary<string,object>
{
}
var l=new mylist<Data>();
l.Add("foo","bar");
它应该解决你的问题