我有一个JSON对象,就像
[
{
"attributes": {
"type": "M2O_ProductOptions__c",
"url": ""
},
"Id": "aAP8A0000004ZkiWAE",
"ExternalId__c": "123456_ABCDEFG",
"Product__r": {
"attributes": {
"type": "Product2",
"url": "/services/data/v51.0/sobjects/Product2"
},
"ProductCode": "123456"
},
"Option__r": {
"attributes": {
"type": "Product2",
"url": "/services/data/v51.0/sobjects/"
},
"ProductCode": "23456"
}
}
]
我还要上课
public class SF_M20_ProductOptions
{
public string Id { get; set; }
public string ExternalId__c { get; set; }
public Product__r Product__r { get; set; }
public Option__r Option__r { get; set; }
}
public class Product__r
{
public string ProductCode { get; set; }
}
public class Option__r
{
public string ProductCode { get; set; }
}
我试图将JSON字符串反序列化为SF_M20_ProductOptions
类型,但是我得到了一个错误。
无法将类型字符串转换为SF_M20_ProductOptions
注意:"attributes":{}
元素不是类型SF_M20_ProductOptions
的一部分。不知何故,我需要在反序列化过程中避免它。
我在努力
List<SF_M20_ProductOptions> obj = JsonConvert.DeserializeObject<List<SF_M20_ProductOptions>>(doc);
doc(doc.toString())的确切值为
"\"[{\\\"attributes\\\":{\\\"type\\\":\\\"M2O_ProductOptions__c\\\",\\\"url\\\":\\\"/services/data/v51.0/sobjects/M2O_ProductOptions__c/aAP8A0000004ZkiWAE\\\"},\\\"Id\\\":\\\"aAP8A0000004ZkiWAE\\\",\\\"ExternalId__c\\\":\\\"722137_NCVB641\\\",\\\"Product__r\\\":{\\\"attributes\\\":{\\\"type\\\":\\\"Product2\\\",\\\"url\\\":\\\"/services/data/v51.0/sobjects/Product2/01t8A000005vdmtQAA\\\"},\\\"ProductCode\\\":\\\"722137\\\"},\\\"Option__r\\\":{\\\"attributes\\\":{\\\"type\\\":\\\"Product2\\\",\\\"url\\\":\\\"/services/data/v51.0/sobjects/Product2/01t8A000004f9FtQAI\\\"},\\\"ProductCode\\\":\\\"NCVB641\\\"}}]\""
1条答案
按热度按时间thtygnil1#
你的json是一个集合,所以你必须把它去封装成集合
或
并修复Option__r属性,如果希望具有不同的c#属性名,可以使用[JsonProperty]属性
更新
你的第二个json序列化了两次,最好修复源代码,否则