繁体   English   中英

如何使用C#从URL解析Json内容?

[英]How to parse Json content from a url with c#?

我举了一个小例子:

public class Test
{
    [JsonProperty(PropertyName = "test1")]
    public String Test1 { get; set; }

    [JsonProperty(PropertyName = "test2")]
    public String Test2 { get; set; }
}

private string url = "http://sample.php";
private List<Test> TestList = new List<Test>();

private async Task<Test> getTestObjects()
{
    var httpClient = new HttpClient();
    var response = await httpClient.GetAsync(url);
}

如何从URL链接获取Test对象进入TestList? 它与读取XML一样吗?

解析json的最佳方法是Json.NET

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys

我尝试此代码并工作:

void Main()
{
    var test = Newtonsoft.Json.JsonConvert.DeserializeObject<Test>(getTestObjects().Result).Dump();

    // test.MyName; 'Bad Boys'
    // test.ReleaseDate; '1995-4-7T00:00:00'
}

public class Test
 {   
     [JsonProperty("Name")]
     public String MyName { get; set; }
     public String ReleaseDate { get; set; }
 }

 private string url = "http://bitg.ir/files/json.txt";
 private List<Test> TestList = new List<Test>();

 private async Task<String> getTestObjects()
 {
     var httpClient = new HttpClient();
     var response = await httpClient.GetAsync(url);
     var result = await response.Content.ReadAsStringAsync();

     return result;
 }

半自动执行这些步骤的快速简便方法是:

  1. 将要解析的JSON粘贴到此处: http : //json2csharp.com/,然后将结果复制并粘贴到Visual Studio中的新类中(例如:MyClass)。
  2. 将json2csharp的输出中的“ RootObject”重命名为“ MyClass”或您所称的名称。
  3. 在visual studio中,转到网站->管理软件包,然后使用NuGet从Newtonsoft添加Json.Net。

现在使用如下代码:

WebClient client = new WebClient();

string myJSON = client.DownloadString("https://URL_FOR_JSON.com/JSON_STUFF");

var myClass = Newtonsoft.Json.JsonConvert.DeserializeObject(myJSON);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM