C# 使用同名属性和数组反序列化JSON(Newtonsoft)

C# 使用同名属性和数组反序列化JSON(Newtonsoft),c#,json,C#,Json,我得到了这个json结果: {"status":"1","message":"OK","result":{"status":"0"}} 我想获取0状态 我的代码: public class getTXStatus { [JsonProperty("result")] public string status { get; set; } } public void GetTXStatus() { StartCoro

我得到了这个json结果:

{"status":"1","message":"OK","result":{"status":"0"}}
我想获取0状态

我的代码:

public class getTXStatus
    {
        [JsonProperty("result")]
        public string status { get; set; }
    }  



public void GetTXStatus()
    {
        StartCoroutine(GetTXStatusAsync($"https://api.blablabla"));
    }

    IEnumerator GetTXStatusAsync(string url)
    {

        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();
        var result = request.downloadHandler.text;
        getTXStatus data = JsonConvert.DeserializeObject<getTXStatus>(result);
        Debug.Log(result);
        ethTXStatus = data.status;

    }
公共类getTXStatus
{
[JsonProperty(“结果”)]
公共字符串状态{get;set;}
}  
公共无效GetTXStatus()
{
Start例程(GetTXStatusAsync($)https://api.blablabla"));
}
IEnumerator GetTXStatusAsync(字符串url)
{
UnityWebRequest=UnityWebRequest.Get(url);
生成返回请求。SendWebRequest();
var result=request.downloadHandler.text;
getTXStatus data=JsonConvert.DeserializeObject(结果);
Debug.Log(结果);
ethTXStatus=data.status;
}
获取此错误:

public class getTXStatus
    {
        [JsonProperty("result")]
        public string status { get; set; }
    }  



public void GetTXStatus()
    {
        StartCoroutine(GetTXStatusAsync($"https://api.blablabla"));
    }

    IEnumerator GetTXStatusAsync(string url)
    {

        UnityWebRequest request = UnityWebRequest.Get(url);
        yield return request.SendWebRequest();
        var result = request.downloadHandler.text;
        getTXStatus data = JsonConvert.DeserializeObject<getTXStatus>(result);
        Debug.Log(result);
        ethTXStatus = data.status;

    }
JsonReaderException:解析时遇到意外字符 值:{.Path'result',第1行,位置39。 Newtonsoft.Json.JsonTextReader.ReadStringValue (Newtonsoft.Json.ReadType ReadType)(位于 :0) Newtonsoft.Json.JsonTextReader.ReadAsString()(位于 :0)

如果我在没有属性“result”的情况下执行此操作,它将返回1(第一个状态)

要正确地反序列化上述json,需要使用以下两个类

public class Result
{
    [JsonProperty("status")]
    public string Status { get; set; }
}

public class RootObject
{
    [JsonProperty("status")]
    public string Status { get; set; }
    [JsonProperty("message")]
    public string Message { get; set; }
    [JsonProperty("result")]
    public Result Result { get; set; }
}
将json反序列化为
RootObject
,并获得
结果。状态

 var jsonObj = JsonConvert.DeserializeObject<RootObject>(json);
 string status = jsonObj.Result.Status; // status will be 0.
var jsonObj=JsonConvert.DeserializeObject(json); string status=jsonObj.Result.status;//状态将为0。
当您使用jsonproperty时,您定义的是json中键的名称。此外,json中的结果是一个对象,而不是字符串。