以编程方式获取 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");
您需要通过 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; }
}