GetFromJsonAsync
方法可用于将JSON文件中的数据读取到Blazor web应用程序中的变量中。该方法适用于简单的JSON文件。
GetFromJsonAsync
方法示例:
@code {
private Students[]? students;
protected override async Task OnInitializedAsync()
{
students = await Http.GetFromJsonAsync<Students[]>("school.json");
}
public class Students
{
public int id { get; set; }
public string? name { get; set; }
public string? lastname { get; set; }
}
}
我的问题是,如何只读取给定JSON标头中的数据?
示例:
{
"book":[
{
"id":"444",
"language":"C",
"edition":"First",
"author":"Dennis Ritchie "
},
{
"id":"555",
"language":"C++",
"edition":"second",
"author":" Bjarne Stroustrup "
}
],
"student": [
{
"id":"01",
"name": "Tom",
"lastname": "Price"
},
{
"id":"02",
"name": "Nick",
"lastname": "Thameson"
}
]
}
我只想阅读";学生;JSON标头转换为students
变量。
您需要一个Root
类。并建议将属性名称命名为Pascal大小写,并使用JsonPropertyName
属性
public class Book
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("language")]
public string Language { get; set; }
[JsonPropertyName("edition")]
public string Edition { get; set; }
[JsonPropertyName("author")]
public string Author { get; set; }
}
public class Student
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("lastname")]
public string Lastname { get; set; }
}
public class Root
{
[JsonPropertyName("book")]
public List<Book> Book { get; set; }
[JsonPropertyName("student")]
public List<Student> Student { get; set; }
}
将JSON反序列化为Root
对象。
protected override async Task OnInitializedAsync()
{
Root root = await Http.GetFromJsonAsync<Root>("school.json");
students = root.Students;
}