以编程方式获取json字符串C#

时间:2013-09-13 07:35:11

标签: c# json webclient

我试图通过使用以下代码行从URL获取json字符串。当我在Google Chrome中输入网址时,我会收到整个字符串和数据。但是当我使用我的代码时,它只返回这一行字符串
{“expand”:“projects”,“projects”:[]}
这是我得到的当我在IE 10中输入网址时。如何在Chrome中输入网址时获得相同的数据?这是获取json数据的代码。
var jsonStr = new WebClient().DownloadString("https_my_url");

2 个答案:

答案 0 :(得分:1)

您需要通过WebClient验证请求。

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

WebClient accessing page with credentials

答案 1 :(得分: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更加友好,并且会使小写变为别名:

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; }
}