我有以下字典<>宾语:
Dictionary<String, object> parameters = new Dictionary<string, object>();
parameters.Add("username", "mike");
parameters.Add("password", "secret");
parameters.Add("persist", false);
当我序列化它时:
using (MemoryStream stream = new MemoryStream())
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(parameters.GetType());
serializer.WriteObject(stream, parameters);
byte[] bytes = stream.ToArray();
string json = Encoding.UTF8.GetString(bytes, 0, bytes.Length);
return json;
}
我得到以下内容:
"[{\"Key\":\"username\",\"Value\":\"mike\"},{\"Key\":\"password\",\"Value\":\"secret\"},{\"Key\":\"persist\",\"Value\":false}]"
我想得到的是原始键/值对映射,如下所示:
"{\"username\":\"mike\", \"password\":\"secret\", \"persist\": false}"
我已经尝试将UseSimpleDictionaryFormat设置为true,但是这个属性没有任何效果,也没有在我能找到的任何地方记录它的用途.
我不能使用自定义类,因为在编译时不知道参数键/值对.
我也不能使用第三方库,比如JSon.NET.我正在使用Silverlight框架和Windows Phone 8运行时.
解决方法:
尝试序列化这个
var parameters = new
{
username = "mike",
password = "secret",
persist = false
}
原文地址:https://codeday.me/bug/20190625/1287261.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。