1

我正在尝试使用以下代码行从 url 获取 json 字符串。当我在谷歌浏览器中输入网址时,我得到了整个字符串和数据。但是当我使用我的代码时,它只返回这行字符串
{"expand":"projects","projects":[]}
这正是我在 IE 10 中输入 url 时得到的结果。如何获得相同的数据当我在 Chrome 中输入网址时会得到什么?这是我获取json数据的代码。
var jsonStr = new WebClient().DownloadString("https_my_url");

4

2 回答 2

1

您将需要通过 WebClient 对请求进行身份验证。

如果站点使用表单身份验证,请参阅此答案以了解如何执行此操作。

WebClient 使用凭据访问页面

于 2013-09-13T08:26:13.667 回答
0

您需要使用 JSON 解析器将其转换为有用的东西。 ServiceStack.Text(可通过 NuGet 或下载获得)有一个出色的工具,可以将 json 字符串转换为一流的 POCO。

using ServiceStack.Text;

public sealed class SomeObject
{
    public string expand { get; set; }
    public List<string> projects {get; set; }
}

并因此转换:

SomeObject object = jsonString.FromJson<SomeObject>();

请注意,我会让我的 POCO 对 c# 更友好一点,并消除小写的别名:

using ServiceStack.Text;
using ServiceStack.DataAnnotations;

public sealed class SomeObject
{
    [Alias("expand")]
    public string Expand { get; set; }

    [Alias("projects")]
    public List<string> Projects {get; set; }
}
于 2013-09-13T07:41:50.970 回答