값이 JSON.NET 인 필드 이름 인 JSON을 비 직렬화해야하는 매우 바람직하지 않은 상황이 있습니다. 나는 나의 현재의 경우,값이 JSON.NET에서 필드 이름 인 JSON을 비 직렬화
class Program
{
static void Main(string[] args)
{
var camelCaseSettings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
var text = File.ReadAllText("user_normal.txt");
var obj = JsonConvert.DeserializeObject<User>(text, camelCaseSettings);
}
}
public class User
{
public string Name { get; set; }
public Role[] Roles { get; set; }
}
public class Role
{
public int Id { get; set; }
public string Name { get; set; }
}
그러나 : 그것은 CLR 개체에 JSON.NET 이것을 역 직렬화하는 것은 매우 쉽다
{
"name": "tugberk",
"roles": [
{ "id": "1", "name": "admin" },
{ "id": "2", "name": "guest" }
]
}
: 나는 매우 적절하게 구성되어 다음과 같은 JSON을 가지고 있다고 가정 , roles
필드 배열이 아닌
{
"name": "tugberk",
"roles": {
"1": { "name": "admin" },
"2": { "name": "guest" }
}
}
시피; 값의 관점에서 상술 JSON 동등 다음 끔찍한 JSON을 그것은 필드 이름 (그것은 끔찍한)으로 고유 한 키를 가진 객체로서 다른 값을 포함하는 객체입니다. 이 JSON을 JSON.NET에서 User
클래스 이상으로 역 직렬화하는 가장 좋은 방법은 무엇입니까?