将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 };
}

将KeyValuePairs集合转换为对象实例.JSON的反序列化

您可以执行switch/property.PropertyType并相应地解析字符串。

但是,我不建议编写自己的JSON反序列化器。使用DataContract API:教程