如何在c#中读取json对象数据?

时间:2016-01-29 04:26:27

标签: c# json json.net

我有json String

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

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

3 个答案:

答案 0 :(得分:1)

使用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提供的链接非常有用。看看吧

答案 1 :(得分:0)

  1. 创建可以反序列化json字符串的c#类。你可以在这里json2csharp.com
  2. 将newtonsoft json Nuget包添加到您的解决方案中。
  3. 然后你可以反序列化你的字符串,
  4.   

    var requestToken =   JsonConvert.DeserializeObject≤(RequestToken)GT;(内容);

    其中, RequestToken 是您的C#类名称,内容是您的json字符串。

    感谢。

答案 2 :(得分:0)

您可以用不同的方式对json数据进行解除分区。为json值创建一个类,或者在序列化后使用字典并从中访问数据。

对于此代码您需要将项目的引用添加到&#34; System.Web.Extensions.dll&#34;

request.META['MYHEADER']

您可以

访问所需的字段
using System.Web.Script.Serialization;
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string,dynamic>>(jsonText);