0

我正在尝试将http://gothere.sg/a/search?q=688609+to+changi+airport&ll=1.362083%2C103.819836上的 JSON 解析为 Windows Phone 8 应用程序。

目前,我正在使用 Newtonsoft.Json 框架,但并不真正知道如何使用它来解析数据。我还使用 json2csharp.com 轻松查看数据。

如果我没记错的话,我需要的数据是List<string> emailstring route_html下。Route

我将如何使用 Json.NET 或任何其他方法将上述两个解析到我的应用程序中?

编辑:我当前的非工作代码:

        private async void testCode()
    {
        var uri = new Uri("http://gothere.sg/a/search?q=688609+to+changi+airport&ll=1.362083%2C103.819836");
        var client = new HttpClient();

        try
        {
            var response = await client.GetStringAsync(uri);
            JToken token = JObject.Parse(response);
            var token1 = token.SelectToken("route_html").ToString();
            var token2 = token.SelectToken("email").ToString();
        }
        catch (Exception)
        {
        }
    }
4

2 回答 2

1

根据我的观点,Newtonsoft.Json 解析 Json 非常容易。

只需按照以下步骤

步骤1:通过右键单击添加引用来添加服务引用。

步骤2:现在将您的Web服务链接放在服务引用上并按go按钮,并添加服务引用的命名空间 在此处输入图像描述

第 3 步:Newtonsoft.Json.Linq;现在在 .cs 文件中 添加使用名称空间

第4步:现在在您的cs文件中添加波纹管代码

 WhatsupServices.WhatsUpServiceSoapClient ws = new WhatsupServices.WhatsUpServiceSoapClient();
ws.ContactUsJSONCompleted += ws_ContactUsJSONCompleted;
ws.ContactUsJSONAsync(txtContactUsName.Text, txtContactUsPhone.Text, txtContactUsEmail.Text, txtContactUsComment.Text);

step6:现在生成你的响应方法

 void ws_ContactUsJSONCompleted(object sender, dynamic e)
        {
            if (e.Error != null)
            {
                MessageBox.Show(LogIn.NetworkBusyMsg, LogIn.MsgHdr, MessageBoxButton.OK);
                busyIndicator.IsRunning = false;
            }
            else
            {
                busyIndicator.IsRunning = false;
                string Result = e.Result;
                JObject obj = JObject.Parse(Result);
                string ResultCode = (string)obj["ResultCode"];
                string ResponceMessage = (string)obj["ResponseMessage"];

                if (ResultCode == "1")
                {
                    MessageBox.Show("Thank you for your message. We'll get back to you soon.", LogIn.MsgHdr, MessageBoxButton.OK);
                    NavigationService.GoBack();
                }
                else
                {

                }
            }
        }

希望它会帮助你。

如果有任何疑问而不是在这里发表评论。我会帮助你

于 2013-09-05T08:33:12.887 回答
1

好吧,如果你使用 json2charp 你会得到很多类。将这些添加到您的项目中。

然后使用以下内容获取根对象。

RootObject root = JsonConvert.DeserializeObject<RootObject>(data);

然后获取您的列表电子邮件:root.directions.drive.routes.email。

于 2013-09-05T07:45:32.227 回答