自定义Json序列化
本文关键字:序列化 Json 自定义 | 更新日期: 2023-09-27 18:24:47
我有一个使用JavaScriptSerializer在Json对象中序列化的KeyPairValue列表。这个操作的输出给了我这样的东西:
[{"Key":"A","Value":"ValueA"},{"Key":"D","Value":"ValueD"}]
我想去掉房产名称周围的",这样它就可以看起来像这样:
[{ Key:"A", Value:"ValueA"},{ Key:"D", Value:"ValueD"}]
有没有办法实现这一点,或者我想要的不是Json系列化?
您可以使用Json.Net 实现
StringWriter str = new StringWriter();
JsonTextWriter writer = new JsonTextWriter(str);
writer.QuoteName = false; //<-- This is the trick
JsonSerializer jsonSer = new JsonSerializer();
jsonSer.Serialize(writer, new { ID = 1, Name = "Jack" });
string jsonstr = str.ToString();
输出为{ID:1,Name:"Jack"}
正如我所知,JSON必须将密钥嵌入"中。这是因为JSON实际上是JavaScript对象的传输格式,因此它有一些细节。
RFC指定名称是字符串,还指定字符串必须用引号括起来。
RFC 4627
值得注意的是,值可以是不同的类型,其中一些类型不必用引号括起来。你也可以在规范中找到这个。