이 질문에 광고 메스꺼움이 있었지만 기존 대답은 특히 도움이되지 않았다는 것을 알고 있습니다. 최고는 Deserialize JSON into C# dynamic object?이지만 개체를 만들고 싶지는 않습니다. 사전을 만들고 싶습니다.JSON을 C#에서 역 직렬화
나는 그렇게처럼 내 데이터를 직렬화, 나는 정확히 같은 데이터 구조에 직렬화하는 :
public static string AugDictToJSON(Dictionary<string, List<Dictionary<string, object>>> dict)
{
return string.Join(",", dict.Select(
d => string.Format("{{ \"{0}\" : [ {1} ] }}", d.Key,
string.Join(",", d.Value.Select(i => SubAugDictToJSON(i)).ToArray())
)).ToArray());
}
public static string SubAugDictToJSON(Dictionary<string, object> dict)
{
return string.Join(",", dict.Select(
d => string.Format("{{ \"{0}\" : \"{1}\" }}", d.Key, d.Value.ToString())
).ToArray());
}
편집 : 솔루션 인 (허용 대답에서) 다음
public static Dictionary<string, List<Dictionary<string, object>>> JSONToAugDict(string json)
{
return JsonConvert.DeserializeObject<Dictionary<string, List<Dictionary<string, object>>>>(json);
}
v4.5를 사용하는 경우 ['JsonValue.Parse()'] (http://msdn.microsoft.com/en-us/library/system.json.jsonvalue.parse.aspx) 또는 형제 자매가 충분히 가까울 수도 있습니다. (여기 4.5가 아니기 때문에 코드를 테스트 할 수는 없습니다.) – millimoose
한편, serialization 코드가 올바르지 않습니다. JSON은 인용되지 않은 문자열을 키로 허용하지 않습니다. – millimoose
'더 우아한 방법이 있을지 궁금하다. ' linq을 사용하는 것은 당신의 방법을 우아하게하지 않습니다. –