C# 在c中读取动态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

您可以找到整个json文件

其中的一小部分:

{
   "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");