使用Newtonsoft.Json解析Json

时间:2017-11-04 16:07:13

标签: c# xamarin dynamic json.net async-await

我正在使用NewtonSoft.Json尝试解析我从C#中的网站获取的Json响应。这是问题所在:

protected async override Task<bool> DoInBackground() {
    var json = await GetJson();
    return true;
}

GetJson()负责从网站获取响应并返回一个Json响应的字符串。 DoInBackground()是自定义AsyncTask类的一部分,用于处理后台运行的任务。

上面的代码运行得非常好。如果我在函数内的第一行放置一个断点,它就会停在那里并允许我逐步检查下载的Json是否正确。

但是以下代码永远不会执行。一旦我从Newtonsoft.Json引用任何东西,函数就会停止执行。函数内部不会出现断点。

protected async override Task<bool> DoInBackground() {
    var json = await GetJson();
    dynamic jsonObject = JObject.Parse(json);
    return true;
}

我做错了什么?

编辑:我应该提到DoInBackground()函数在不使用Newtonsoft.Json的其他类中运行完美。这是我需要从服务器获取Json的第一个类。

编辑:为了测试代码是否在没有命中断点的情况下执行,我尝试了以下但没有输出。

protected async override Task<bool> DoInBackground() {
    var json = await GetJson();

    Debug.WriteLine("before");
    dynamic jsonObject = JObject.Parse(json);
    Debug.WriteLine("after");

    return true;
}

1 个答案:

答案 0 :(得分:4)

在您的情况下,您可以简单地清除解决方案并重建它。应用程序运行正常,因为您的代码没有问题。

只是Visual Studio正在使用已经构建的应用程序,然后才能在代码中进行最终修改。

在您的情况下,可能现有的构建副本没有添加Newtonsoft.Json。