我有以下代码片段,其中我将对象序列化为 JSON。代码工作正常,但我想从 JSON 字符串中删除Key
和关键字。Value
电流输出:
{
"Description":"test",
"RoomTypes":[
{
"Key":"A",
"Value":{
"Name":"Delux"
}
},
{
"Key":"B",
"Value":{
"Name":"Non delux"
}
}
],
"Url":"http:\/\/test.com"
}
期望的输出:
{
"Description":"test",
"RoomTypes":[
{
"A":{
"Name":"Delux"
}
},
{
"B":{
"Name":"Non delux"
}
}
],
"Url":"http:\/\/test.com"
}
我的测试代码:
namespace ConsoleApplication1
{
[DataContract]
public class Room
{
[DataMember]
public string Url { get; set; }
[DataMember]
public string Description { get; set; }
[DataMember]
public Dictionary<string, RoomTypes> RoomTypes { get; set; }
}
[DataContract]
public class RoomTypes
{
[DataMember]
public string Name { get; set; }
}
public class Test
{
static void Main(string[] args)
{
Room room = new Room { Url = "http://test.com", Description="test" };
RoomTypes roomType1 = new RoomTypes() { Name = "Delux" };
RoomTypes roomType2 = new RoomTypes() { Name = "Non delux" };
room.RoomTypes = new Dictionary<string, RoomTypes>();
room.RoomTypes["A"] = roomType1;
room.RoomTypes["B"] = roomType2;
DataContractJsonSerializer dataContractSer =
new DataContractJsonSerializer(typeof(Room));
StringBuilder sb = new StringBuilder();
MemoryStream ms = new MemoryStream();
dataContractSer.WriteObject(ms, room);
var result = Encoding.UTF8.GetString(ms.ToArray());
Console.WriteLine(result);
}
}
}
有没有办法做到这一点?