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

本文关键字:json 字符串 获取 编程 方式 | 更新日期: 2023-09-27 18:31:13

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

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

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

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

使用凭据访问网页客户端

您需要使用 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; }
}