将KeyValuePairs集合转换为对象实例.JSON的反序列化
本文关键字:实例 JSON 反序列化 对象 KeyValuePairs 集合 转换 | 更新日期: 2023-09-27 18:03:47
这是一个分为两部分的问题。我想第一个是,我是否在用最好的方法来做这件事,第二个是我遇到的障碍。以下代码适用于字符串属性,但不适用于int等类型。我从KVP中得到int值作为字符串,但我不能在属性上设置int为字符串。我找不到允许我解析的语法。
[WebInvoke(UriTemplate = "", Method = "POST")]
public Response Post(JsonValue items)
{
List<Provider> providers = new List<Provider>();
foreach (var item in items)
{
var json = item.Value;
var provider = new Provider();
foreach (var property in typeof(Provider).GetProperties())
{
if (json.ContainsKey(property.Name))
property.SetValue(provider, json[property.Name].ToString(), null);
}
providers.Add(provider);
}
return new Response { success = true, data = providers };
}
您可以执行switch
/property.PropertyType
并相应地解析字符串。
但是,我不建议编写自己的JSON反序列化器。使用DataContract
API:教程