如何使用 c# 从 url 解析 Json 内容
本文关键字:解析 Json 内容 url 何使用 | 更新日期: 2023-09-27 18:33:33
我举了一个小例子:
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 链接中的测试对象获取到测试列表中?它与读取 XML 相同吗?
半自动化这些步骤的一种快速简便的方法是:
- 获取要解析的 JSON 并将其粘贴到此处: http://json2csharp.com/然后将结果复制并粘贴到 Visual Studio 中的新类(例如:MyClass)中。
- 将 json2csharp 输出中的"RootObject"重命名为 "MyClass" 或任何你称之为它的名字。
- 在 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);
解析
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;
}