【问题标题】:Convert set of KeyValuePairs to object instance. Kind of deserialisation for JSON将一组键值对转换为对象实例。 JSON的反序列化类型
【发布时间】:2011-07-26 17:33:01
【问题描述】:

这是一个两部分的问题。我想第一个是,我是否会以最好的方式做到这一点,第二个是我遇到的障碍。以下代码适用于字符串属性,但不适用于 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 };
}

【问题讨论】:

    标签: c# json wcf-web-api


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      相关资源
      最近更新 更多