json反序列化和字段提取

本文关键字:提取 字段 反序列化 json | 更新日期: 2023-09-27 18:21:53

以下是我从REST 得到的响应

{
    "category_id": 1314,
    "display_category_name": "",
    "english_category_name": "Sports",
    "url_category_name": ""
},
{
    "category_id": 13,
    "display_category_name": "Art",
    "english_category_name": "Art",
    "url_category_name": "art"
},
{
    "category_id": 21,
    "display_category_name": "Blogs",
    "english_category_name": "Blogs",
    "url_category_name": "blogs"
}

但是我只需要显示"category_id"和english_category_name,那么我如何在c#中单独提取这两个字段呢?

提前谢谢。

json反序列化和字段提取

创建以下类:

public class Category
{
    public int category_id { get; set; }
    public string english_category_name { get; set; }
}

使用以下库Newtonsoft.Json

按如下方式反序列化jsonstring:

var categories = JsonConvert.DeserializeObject<List<Category>>(json);

然后,您可以访问类别作为类别对象的列表,即

var category = categories.FirstOrDefault();
string categoryDisplayName = category.english_category_name;

请注意,您还可以从json类型中重命名C#中的字段,如下所示:

[JsonProperty("english_category_name")]
public string EnglishCategoryName { get; set; }

您可以使用System.Web.Script.Serialization.JavaScriptSerializer或JSON.NET