gpt4 book ai didi

c# - 反序列化 JSON 字符串嵌套字典

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:41 35 4
gpt4 key购买 nike

我正在尝试使用 Riot games REST API在 C# 中制作一个 webapp。我可以使用 RESTSharp 发出请求但在使用 JSON.Net 时遇到一些问题将返回的 Json 转换为对象。我的请求返回一个 JSON 字符串,例如:

{\"dyrus\":{\"id\":4136713,\"name\":\"Dyrus\",\"profileIconId\":23,\"summonerLevel\":1,\"revisionDate\":1376908220000}}

我想将其反序列化为一个具有以下属性的对象:idnameprofileIconIDsummonerLevelrevisionDate

我遇到的问题是信息被反序列化为字符串,因为字典是嵌套的。检索字符串的嵌套字典部分的最佳方法是什么:{\"id\":4136713,\"name\":\"Dyrus\",\"profileIconId\":23,\"summonerLevel\":1,\"revisionDate\":1376908220000} 并将其转换为对象?

感谢您的帮助!

编辑:

这是我尝试过的:

public class LeagueUser
{
public LeagueUser(string json)
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
string jsonString = (string)serializer.DeserializeObject(json);
LeagueUser test = (LeagueUser)serializer.DeserializeObject(jsonString);
}
public int id { get; set; }
public string name { get; set; }
public long revisionDate { get; set; }
}

最佳答案

你不需要构造函数,改变LeagueUser

public class LeagueUser
{
public int id { get; set; }
public string name { get; set; }
public long revisionDate { get; set; }
}

并使用Json.NET将 json 反序列化为 Dictionary<string, LeagueUser>

string jsonStr = "{\"dyrus\":{\"id\":4136713,\"name\":\"Dyrus\",\"profileIconId\":23,\"summonerLevel\":1,\"revisionDate\":1376908220000}}";

var deserializedObject = JsonConvert.DeserializeObject<Dictionary<string, LeagueUser>>(jsonStr);

您可以获得LeagueUser反对这种方式

LeagueUser leagueUser = deserializedObject["dyrus"];

关于c# - 反序列化 JSON 字符串嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938345/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com