Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式获取json字符串#_C#_Json_Webclient - Fatal编程技术网

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

C# 以编程方式获取json字符串#,c#,json,webclient,C#,Json,Webclient,我试图通过使用以下代码行从url获取json字符串。当我在Google Chrome中输入url时,我会得到整个字符串和数据。但是当我使用我的代码时,它只返回这一行字符串{“expand”:“projects”,“projects”:[]}这正是我在IE 10中输入url时得到的结果。在Chrome中输入url时,如何获得相同的数据?这是我获取json数据的代码。var jsonStr=new WebClient()您需要使用JSON解析器将其转换为有用的内容。(可通过NuGet或下载获得)有一

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

您需要使用JSON解析器将其转换为有用的内容。(可通过NuGet或下载获得)有一个很好的方法,可以将json字符串转换为一流的POCO

using ServiceStack.Text;

public sealed class SomeObject
{
    public string expand { get; set; }
    public List<string> projects {get; set; }
}
使用ServiceStack.Text;
公共密封类对象
{
公共字符串扩展{get;set;}
公共列表项目{get;set;}
}
并据此转化为:

SomeObject object = jsonString.FromJson<SomeObject>();
SomeObject object=jsonString.FromJson();
请注意,我会使我的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; }
}
使用ServiceStack.Text;
使用ServiceStack.DataAnnotations;
公共密封类对象
{
[别名(“扩展”)]
公共字符串扩展{get;set;}
[别名(“项目”)]
公共列表项目{get;set;}
}

您需要使用JSON解析器将其转换为有用的内容。(可通过NuGet或下载获得)有一个很好的方法,可以将json字符串转换为一流的POCO

using ServiceStack.Text;

public sealed class SomeObject
{
    public string expand { get; set; }
    public List<string> projects {get; set; }
}
使用ServiceStack.Text;
公共密封类对象
{
公共字符串扩展{get;set;}
公共列表项目{get;set;}
}
并据此转化为:

SomeObject object = jsonString.FromJson<SomeObject>();
SomeObject object=jsonString.FromJson();
请注意,我会使我的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; }
}
使用ServiceStack.Text;
使用ServiceStack.DataAnnotations;
公共密封类对象
{
[别名(“扩展”)]
公共字符串扩展{get;set;}
[别名(“项目”)]
公共列表项目{get;set;}
}

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

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


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

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



让库序列化/反序列化您遇到的任何json。您正在与之通信的网站/服务是否需要任何类型的身份验证?在不知道您正在与哪个网站/服务交谈的情况下,很难提供帮助。@Adrian,我不明白身份验证与OP的问题有什么关系?因为从Chrome返回的数据在WebClient返回时是不同的。我的理论是,如果请求经过身份验证,则返回的数据将不同。@user217648在每种情况下,您会返回什么字符串?让库对您遇到的任何json进行序列化/反序列化。您正在与之通信的网站/服务是否需要任何类型的身份验证?在不知道您正在与哪个网站/服务交谈的情况下,很难提供帮助。@Adrian,我不明白身份验证与OP的问题有什么关系?因为从Chrome返回的数据在WebClient返回时是不同的。我的理论是,如果请求经过身份验证,那么返回的数据将不同。@user217648在每种情况下,您会返回什么字符串?这与OP相关吗?问题在于如何在WebClient、Chrome和IE之间接收不同的字符串,而不是JSON反序列化。问题在于JSON反序列化(据我所知!)他之所以在Chrome中看到完整格式的结果,是因为Chrome知道它是JSON,并且正在对结果进行适当的格式化。在他的代码中,他只是得到一个字符串。请看问题的结尾,他将结果分配给一个基本字符串。这是我第一次使用json,这是否意味着WebClient.DownloadString(“”)返回整个json数据?它是否表示它获取了json数据,但无法对其进行反序列化?thanks@user217648,正确-
WebClient.DownloadString
将只返回原始的、未格式化的字符串。要轻松处理数据,需要对其进行反序列化。文本库具有最(如果不是最)高性能的JSON序列化/反序列化功能之一。这与OP相关吗?问题在于如何在WebClient、Chrome和IE之间接收不同的字符串,而不是JSON反序列化。问题在于JSON反序列化(据我所知!)他之所以在Chrome中看到完整格式的结果,是因为Chrome知道它是JSON,并且正在对结果进行适当的格式化。在他的代码中,他只是得到一个字符串。请看问题的结尾,他将结果分配给一个基本字符串。这是我第一次使用json,这是否意味着WebClient.DownloadString(“”)返回整个json数据?它是否表示它获取了json数据,但无法对其进行反序列化?thanks@user217648,正确-
WebClient.DownloadString
将只返回原始的、未格式化的字符串。要轻松处理数据,需要对其进行反序列化。ServiceStack.Text库具有最(如果不是最)高性能的JSON序列化/反序列化功能之一。谢谢Adrian,您似乎需要将用户名和密码发送到服务器,我不允许这样做。有没有可能通过获得jira的登录页面并使用某种令牌或其他东西来使用coockie?还是使用oauth?我正试图找到一个解决方案。我对JIRA不太了解,但一些搜索将我带到这里。Atlassian/JIRA文档似乎非常完整。谢谢Adrian,似乎您需要将用户名和密码发送到服务器,这是我不允许做的。有没有可能通过获得jira的登录页面并使用某种令牌或其他东西来使用coockie?还是使用oauth?我正试图找到一个解决方案。我对JIRA了解不多,但一些搜索将我带到了这里,而且Atlassian/JIRA文档似乎非常有用