我在反序列化帶有方括號和未知名稱鍵的 json 檔案時遇到問題。也許有人知道該怎么做?我閱讀了所有類似的問題,但沒有任何效果。
json檔案
[
{
"item1": {
"value1": "rhe5h45h",
"price1": "3.34"
}
},
{
"ddddd: {
"value1": "cef3f",
"price1": "1.1",
}
},
{
"rrrrr678": {
"value1": "dfdf",
"price1": "2"
}
}
]
班級
public class itemList
{
[JsonProperty("value1")]
public string value1 { get; set; }
[JsonProperty("price1")]
public double price1 { get; set; }
}
CS:
var obj = JsonConvert.DeserializeObject<Dictionary<string, itemList>>(jsonFile);
uj5u.com熱心網友回復:
我可能會這樣做(在糾正您的 JSON 缺失后"
:
你的班級將是:
public class Item
{
[JsonProperty("value1")]
public string Value1 { get; set; }
[JsonProperty("price1")]
public double Price1 { get; set; }
}
要反序列化,您需要一個字典串列:
var obj = JsonConvert.DeserializeObject<List<Dictionary<string, Item>>>(jsonFile);
uj5u.com熱心網友回復:
使用清單
var obj = JsonConvert.DeserializeObject<List<Dictionary<string, itemList>>>(jsonFile);
uj5u.com熱心網友回復:
您的問題是您沒有反序列化字典,這是鍵\值對的陣列(或串列)。
您的代碼可能會更改為如下所示的內容。
var obj = JsonConvert.DeserializeObject<List<Dictionary<string, itemList>>>(jsonFile);
為了反序列化字典,決議器需要一個鍵值(唯一鍵)對,例如下面的 json。
{
"item1": {
"value1": "rhe5h45h",
"price1": "3.34"
},
"ddddd": {
"value1": "cef3f",
"price1": "1.1"
},
"rrrrr678": {
"value1": "dfdf",
"price1": "2"
}
}
uj5u.com熱心網友回復:
我不確定這是否是一個錯字,但是您上傳的 json 代碼缺少引號。正確的反序列化將是:
var obj = JsonConvert.DeserializeObject<List<Dictionary<string, itemList>>>(jsonFile);
固定的json代碼:
[
{
"item1": {
"value1": "rhe5h45h",
"price1": "3.34"
}
},
{
"ddddd": {
"value1": "cef3f",
"price1": "1.1",
}
},
{
"rrrrr678": {
"value1": "dfdf",
"price1": "2"
}
}
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/507294.html