【问题标题】:Using xamarin to retrieve JSON message from URl and show in table view使用 xamarin 从 URl 检索 JSON 消息并显示在表视图中
【发布时间】:2014-12-23 18:26:50
【问题描述】:

我开始在 Visual Studio 中进行 xamarin 跨平台开发。我想知道,如何从 url 检索 JSON 消息以在表格视图中显示详细信息。这里我给出一个示例 url,如何检索 json 数据中的所有城市名称并显示在表格中。帮帮我!

网址:http://api.wunderground.com/api/02e5dd8c34e3e657/geolookup/conditions/forecast/q/Dhaka,Bangladesh.json

【问题讨论】:

  • 我不熟悉 Xamarin.forms,但我在 Xamarin.iOS 中,我认为您的问题似乎过于广泛。一件事是知道如何向服务器发出请求,另一件事是如何解析结果,另一件事是如何使用您拥有的数据并显示它。我认为把它分成单独的问题会给你更多的答案。
  • @Udil 好的。谢谢你的建议。
  • @Udil 我还有一个问题。是否可以在 xamarin 中编写目标 C?
  • 1.你为什么想要? 2. 您不能在 Xamarin 中编写或混合 Obj-C 与 C#。但是,您可以编写一个 obj-c 库,然后围绕它执行一个 c# 绑定库,然后在您的 Xamarin.iOS 应用程序中使用它。但这听起来像一个巨大的麻烦。如果您已经拥有 obj-c 库是一回事,否则我认为您需要一个非常好的理由才能这样做。

标签: json xamarin cross-platform xamarin-studio xamarin.forms


【解决方案1】:

正如@Udi 所说,你的问题太宽泛了。但正因为如此,我会给出广泛的答案。

首先,使用 HttpClient 从您的 url 中检索数据。其次,使用 Json.Net 将您的响应反序列化为您的实体/模型。

string url = @"http://api.wunderground.com/api/02e5dd8c34e3e657/geolookup/conditions/forecast/q/Dhaka,Bangladesh.json";

using (var client = new HttpClient())
{
    var result = await client.GetStringAsync(url);
    return JsonConvert.DeserializeObject<YourModelForTheResponse>(result);
}

第三,要显示您的数据,我建议您使用Xamarin.FormsMonoTouch.Dialog。它使使用表格更容易。

我有一个示例应用程序,我查询了一项服务,得到了一个 json 响应,并使用 Xamarin.Forms 和 MonoTouch.Dialog 显示了数据列表。查看my sample app at github

【讨论】:

  • 在您的示例程序中,您没有在任何地方使用 json。并使用此代码引用响应类,但错误发生在等待中。
  • 1.正如我所说,你的问题很模糊,我的回答也是。 2. 我确实使用了 JSON。您的服务和我示例中的服务返回 JSON。我收到后立即将其反序列化为一个对象。看到JsonConvert 行了吗?当 JSON.Net 可以将原始 json 转换为我的模型时,为什么我要与它进行交互?你还在寻找什么?您没有提供带有代码问题的特定问题,所以我不会为您做。我对你的要求给出了足够的答案。
  • 其实我在 github 程序上说过你的示例应用程序。现在我编写了自己的程序,没有错误。但输出不是打印。我用代码发布了一个新问题。帮助我。
  • click here 看到新问题@valdetero
【解决方案2】:

我在 xamarin 论坛上发布了这个问题,并带有完整的编码。我从具有完整编码结构的人那里得到了答案。它为我工作。

click here 查看问题和答案的链接。我希望,它适用于所有人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多