C# 在c中读取动态json类型#
您可以找到整个json文件 其中的一小部分:C# 在c中读取动态json类型#,c#,json,C#,Json,您可以找到整个json文件 其中的一小部分: { "35891":[ { "itemId":5021, "minAmount":1, "maxAmount":1000, "rate":100, "rarity":"ALWAYS", "announce":false }, { "itemId":22374, "mi
{
"35891":[
{
"itemId":5021,
"minAmount":1,
"maxAmount":1000,
"rate":100,
"rarity":"ALWAYS",
"announce":false
},
{
"itemId":22374,
"minAmount":1,
"maxAmount":1,
"rate":0.033,
"rarity":"RARE",
"announce":true
},
{
"itemId":22375,
"minAmount":1,
"maxAmount":1,
"rate":0.033,
"rarity":"RARE",
"announce":true
},
{
"itemId":22376,
"minAmount":1,
"maxAmount":1,
"rate":0.033,
"rarity":"RARE",
"announce":true
},
{
"itemId":20510,
"minAmount":1,
"maxAmount":1,
"rate":0.0066,
"rarity":"RARE",
"announce":true
}
],
"25084":[
{
"itemId":22729,
"minAmount":1,
"maxAmount":1,
"rate":0.0042,
"rarity":"RARE",
"announce":true
},
{
"itemId":22730,
"minAmount":1,
"maxAmount":1,
"rate":0.0042,
"rarity":"RARE",
"announce":true
},
{
"itemId":22731,
"minAmount":1,
"maxAmount":1,
"rate":0.0042,
"rarity":"RARE",
"announce":true
},
{
"itemId":22732,
"minAmount":1,
"maxAmount":1,
"rate":0.0042,
"rarity":"RARE",
"announce":true
}
]
}
我主要希望能够从中获得每一个“项目”。一个项目的例子是“35891”,我希望能够获得“35891”的数据
我尝试了以下方法:
var serializer = new JavaScriptSerializer();
serializer.RegisterConverters(new[] { new DynamicJsonConverter() });
dynamic obj = serializer.Deserialize(readText, typeof(object));
还可以使用普通的Json.Deserialize
读取数据后,我还希望能够将其写入(序列化)。使用:
公共类数据
{
公共int itemId{get;set;}
公共int minAmount{get;set;}
public int maxantium{get;set;}
公共十进制率{get;set;}
公共字符串稀有性{get;set;}
公共bool公布{get;set;}
}
...
var result=JsonConvert.DeserializeObject(“此处的json”);
Newtonsoft.Json.JsonReaderException:'无法将字符串转换为整数:始终。路径“35891[0]。稀有性”,第8行,位置24。@Kyle修复了数据类此操作有效,但我无法var result=jsoninvert.DeserializeObject(readText);Show((结果[0]).ToString())@Kyle这是一本字典,所以把它当作字典使用。nvm认为这是Hi的一个可能的副本,所以这个问题必须是独立的。你可以直接在你的问题中加入json的一部分吗?
public class Data
{
public int itemId { get; set; }
public int minAmount { get; set; }
public int maxAmount { get; set; }
public decimal rate { get; set; }
public string rarity { get; set; }
public bool announce { get; set; }
}
...
var result = JsonConvert.DeserializeObject<Dictionary<string, Data[]>>("your json here");