WebService JSON查询异常

时间:2015-01-17 14:12:22

标签: c# json web-services windows-store-apps windows-phone-8.1

async private void webServiceGetPoints()
    {
        var client = new HttpClient();
        var response = await client.GetAsync(new Uri("//private//"));
        var result = await response.Content.ReadAsStringAsync();

        JArray jsonVal = JArray.Parse(result) as JArray;
        dynamic taglist = jsonVal;

        foreach (dynamic tag in taglist)
        {
            Collection.Add(new Tag(tag.name, tag.description, tag.longitude, tag.latitude));
        }
    }

我的代码有问题。当我将此GET查询设置为serwer时,它返回一个json。我尝试使用JSON.NET将其解析为类,但是当我这样做时,它会让我感到异常。我不知道有一个因为它打开App.h.cs文件突出显示该行:     if(global :: System.Diagnostics.Debugger.IsAttached)global :: System.Diagnostics.Debugger.Break();

1 个答案:

答案 0 :(得分:0)

您正在将动态值传递到Tag类构造函数中。其中的某些值可能无法转换为您的类所期望的任何值(可能它们为null,或者甚至不存在)。

您可以使用类似Json.Net的类型转换器:

class TagData
{
    public string name { get; set; }
    public int longitude { get; set; }
    //...
}

var item JsonConvert.DeserializeObject<List<TagData>>(result);

特别是对于来自Web服务的数据,您不应该依赖于动态并始终使用能够检查正确转换的内容。