如何在 C# 中读取 JSON 对象数据

本文关键字:JSON 对象 数据 读取 | 更新日期: 2023-09-27 18:32:32

我有 json 字符串

{
    "isSuccess": true,
    "responseMessage": "Voucher Code is valid!",
    "responseData": {
        "vouchername": "COMPANY",
        "vouchercode": "sss12",
        "vouchervalue": "100"
    }
}

如何在 C# 代码中读取此 JSON 数据?

如何在 C# 中读取 JSON 对象数据

使用 JsonConvert.DeserializeObject() 将此字符串反序列化为类类型,然后以通常的方式访问其属性。

public class Rootobject
{
    public bool isSuccess { get; set; }
    public string responseMessage { get; set; }
    public Responsedata responseData { get; set; }
}
public class Responsedata
{
    public string vouchername { get; set; }
    public string vouchercode { get; set; }
    public string vouchervalue { get; set; }
}

然后,您可以像这样访问值

var results = JsonConvert.DeserializeObject<Rootobject>(json);
var strResponseMessage = results.responseMessage ;
var strVoucherName = results.responseData.vouchername;

dbc 提供的链接非常有用。请看一下<</p>

div class="answers">

您可以通过不同的方式对 json 数据进行解压缩。要么为 json 值创建一个类,要么使用字典并在序列化后从中访问数据。

对于此代码,您需要添加对项目的引用"System.Web.Extensions.dll"

using System.Web.Script.Serialization;
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string,dynamic>>(jsonText);

您可以通过以下方式访问所需的字段

bool isSuccess = Convert.ToBool(dict["isSuccess"]);
string vouchername = Convert.ToString(dict["responseData"]["vouchername"]);
  1. 创建可以反序列化 json 字符串的 c# 类。你可以在这里做 json2csharp.com
  2. 将牛顿软件 json Nuget 包添加到解决方案中。
  3. 然后你可以像这样反序列化你的字符串,

var requestToken = JsonConvert.DeserializeObject<(RequestToken)>(Content);

哪里RequestToken 是 C# 类名,Content 是 json 字符串。

谢谢。