如何使用C#反序列化JSON数据?
我还看到了其他类似的问题,但这些都是非常复杂的JSON数据,其中包含对象。尽管我正在使用的JSON从来都不是静态的,但我怀疑它是否像这些一样复杂。而且,这是我第一次将JSON与C结合使用,所以我有点不知所措 我试图实现的是分离从API接收的数据,该API是我在C#中使用WebRequest提示的 返回的JSON数据的方式与之类似 我希望能够通过以下方式访问上述字符串的所有属性: ID:如何使用C#反序列化JSON数据?,c#,json,serialization,C#,Json,Serialization,我还看到了其他类似的问题,但这些都是非常复杂的JSON数据,其中包含对象。尽管我正在使用的JSON从来都不是静态的,但我怀疑它是否像这些一样复杂。而且,这是我第一次将JSON与C结合使用,所以我有点不知所措 我试图实现的是分离从API接收的数据,该API是我在C#中使用WebRequest提示的 返回的JSON数据的方式与之类似 我希望能够通过以下方式访问上述字符串的所有属性: ID: 名称: ~~ ~~ ~~ ... 等等 我想一定要为这个课程做些什么 感谢所有帮助,提前谢谢大家。创建一个这样
名称:
~~
~~
~~ ... 等等 我想一定要为这个课程做些什么
感谢所有帮助,提前谢谢大家。创建一个这样的类即可
public class RootObject
{
public int Id { get; set; }
public string name { get; set; }
public int profileIconId { get; set; }
public int Level { get; set; }
public string revisionDate { get; set; }
}
然后将json.Net和此代码安装到主方法中
var jsonObject=JsonConvert.DeserializeObject<RootObject>(jsonText);
从Nuget安装Json.Net
Install-Package Newtonsoft.Json
为内部对象({“id”:…,“name”:…}
)声明类:
如您所见,您可以使用JsonPropertyAttribute
指定从json字段到.Net对象属性的重命名映射
将json读入字典
,并获取“johny.debt”键的值:
并将其反序列化:
var root = JsonConvert.DeserializeObject<RootObject>(jsonText);
var johhny = root.JohhnyDebt;
var root=JsonConvert.DeserializeObject(jsonText);
var johny=root.johnydebt;
只需定义一个反映您的结构的类,然后将其反序列化到这个类中。。@DrKoch信不信由你,这就是我需要帮助的地方。你试过谷歌吗?我想你需要上二级课。第一级是“约翰尼系”。此属性包含第二级类。您的json格式已更改,请稍候,我将更新ASNWerBeautify。我假设JSON现在被反序列化并放在一个对象中,我如何以最佳方式访问属性?dict[“info”].property?作为简单的对象属性。示例:Console.Write(“Name is”+johny.Name)
如果需要从根对象读取额外数据,请查看JsonExtensionDataAttribute
[JsonExtensionData]公共字典其他{get;set;}
Install-Package Newtonsoft.Json
public class InnerObject
{
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("name")]
public string Username { get; set; }
[JsonProperty("profileIconId")]
public int ProfileIconId { get; set; }
[JsonProperty("level")]
public int Level { get; set; }
[JsonProperty("revisionDate")]
public string RevisionDate { get; set; }
}
var dict = JsonConvert.DeserializeObject<Dictionary<string, InnerObject>>(jsonText);
var johhny = dict["johhny.debt"];
public class RootObject
{
[JsonProperty("johhny.debt")]
public InnerObject JohhnyDept { get; set; }
}
var root = JsonConvert.DeserializeObject<RootObject>(jsonText);
var johhny = root.JohhnyDebt;