我正在嘗試解析一個 JSON 對象,如下所示,其中標頭對象是隨機字母數字。此外,有時 JSON 可能只包含一個對象。{ "48ce0e9a-ee27-4e7b-93a5-4f219974f62c": { "preview": { "FRONT": "https://123avb.jpg", "INSIDE_TOP": "https://456ihn.jpg", "INSIDE_BOTTOM": "https://987ung.jpg", "BACK": "https://ikh980.jpg" }, "print": { "primary": "https://iifuer.pdf", "secondary": "https://09e491.pdf" } }, "d767e1a6-7afe-4d17-85f7-d512a0ca0b14": { "preview": { "FRONT": "https://0ff7cc7.jpg", "BACK": "https://64e7a8.jpg" }, "print": { "primary": "https://73fbdc.pdf" } }}我為這些對象創建了類:namespace FulfillmentModel{ public class Baseclass { public G1 G1 { get; set; } public Env Env1 { get; set; } } public class Preview { [JsonProperty("FRONT")] public string FRONT { get; set; } [JsonProperty("INSIDE_TOP")] public string INSIDE_TOP { get; set; } [JsonProperty("INSIDE_BOTTOM")] public string INSIDE_BOTTOM { get; set; } [JsonProperty("BACK")] public string BACK { get; set; } } public class Print { [JsonProperty("primary")] public string primary { get; set; } [JsonProperty("secondary")] public string secondary { get; set; } } public class G1 { public Preview preview { get; set; } public Print print { get; set; } } public class Preview2 { public string FRONT { get; set; } public string BACK { get; set; } } public class Print2 { public string primary { get; set; } } public class Env { public Preview2 preview { get; set; } public Print2 print { get; set; } }}我正在從 API 讀取 JSON 對象。我正在使用以下代碼將其轉換為BaseClass:string Jsontring= response.Content.ReadAsStringAsync().Result;var verificationResult = JsonConvert.DeserializeObject<Baseclass>(Jsontring);但 中的對象BaseClass為空。我不確定我做錯了什么。你能幫忙嗎?
2 回答

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
在 JSON 中,最外層的對象中有鍵48ce0e9a-ee27-4e7b-93a5-4f219974f62c
和。d767e1a6-7afe-4d17-85f7-d512a0ca0b14
但是這些鍵不存在于Baseclass
您要反序列化到的模型類中,該模型類包含G1
和Env
屬性。您可以用屬性標記這些屬性[JsonProperty]
,但既然您說這些鍵是隨機的,那么處理它的更好方法是將反序列化為Dictionary<string, G1>
. Dictionary<Guid, G1>
(或者,如果您確定字母數字鍵始終代表 GUID,則可以使用)。
var verificationResult = JsonConvert.DeserializeObject<Dictionary<string, G1>>(Jsontring);
現在verificationResult
將包含一個字典,其中的鍵是來自 JSON 的隨機鍵。每個鍵對應的值將是一個G1
對象,其中已填充Preview
和Print
對象。
演示小提琴在這里: https: //dotnetfiddle.net/kzGihd
- 2 回答
- 0 關注
- 181 瀏覽
添加回答
舉報
0/150
提交
取消