根级数据无效:试图反序列化json字符串

本文关键字:反序列化 json 字符串 数据 无效 | 更新日期: 2023-09-27 18:02:03

我使用Asp。虽然我以前做过一些反序列化Xml的工作,但我没有必要对json做同样的工作。

我得到的错误是根级数据无效,这是我以前在Xml反序列化中看到的。

以下是我对响应的文档:

HTTP ResponseCode: 200
HTTP Status: OK
HTTP Body:
{
“Status”:”Success”,
“Response”:”0”,
“Price”:”10.00”,
“BuyerId”:999,
“BuyerContractId”:9999,
“Detail”:”https://...”
}

我正在使用WebClient来获取数据:

response = wc.UploadString(info.Endpoint, info.Data);

"response"是一个字符串。我使用这个方法来反序列化:

    public static T JsonResponse<T>(string response)
       where T : class
    {
        var s = new DataContractJsonSerializer(typeof(T));
        using (var r = XmlReader.Create(new StringReader(response)))
        {
            return (T)s.ReadObject(r);
        }
    }

我要反序列化到的类是:

[DataContract]
public class ResponseProps
{
    [DataMember(Name = "Status")]
    public string Status { get; set; }
    [DataMember(Name = "Response")]
    public string Response { get; set; }
    [DataMember(Name = "Price")]
    public decimal Price { get; set; }
    [DataMember(Name = "BuyerId")]
    public string BuyerId { get; set; }
    [DataMember(Name = "BuyerContractId")]
    public string BuyerContractId { get; set; }
    [DataMember(Name = "Detail")]
    public string Detail { get; set; }
}

它的名字是这样的:

var cr = XmlHelper.JsonResponse<ResponseProps>(response);

有人知道我哪里出错了吗?

根级数据无效:试图反序列化json字符串

假设数据是JSON格式,我更改了以下内容-

public static T JsonResponse<T>(string response)
   where T : class
    {
        return JsonConvert.DeserializeObject<T>(response);
    }

现在运行正常-

var q = JsonResponse<ResponseProps>('jsonString');