2011-04-10 3 views
10

json의 API에서 알려진 값을 얻을 수있는 상황이 있지만 알 수없는 값 집합 (예 :이 json의 암호 ​​및 전자 메일 오류)이 필요합니다.Json.net에서 값 가져 오기

{"error":{"httpCode":400,"message":"Invalid parameters"}, "message":{"errors": 
    {"password":"is too short" 
    ,"email":"is invalid"}}} 

나는 항상 'error'와 'message.errors'를 얻는다. 나는 어떤 토큰/속성이 될지 미리 모르겠다. (암호, 이메일)

나는 Json.net을 사용하여 문자열 작성자에게 편지를 쓰려고한다 : "암호가 너무 짧다. 이메일은

JObject root = JObject.Parse(<json string>); 

그 코드는 나에게 root.Properties을 제공합니다 "유효하지 않은,하지만 난 그것의 아이들 오프 특성을하지 않는 한 나는 뭔가 잘못하고있는 중이 야. 나는 무엇을 얻지 않는가?

감사합니다,

답변

13

아니라이 이것을 할 수있는 더 좋은 방법이 될 수 있지만, 다음 코드는 오류 배열 내에서 키 쌍의 키와 값 추출하는 나를 위해 일한 수

string data = 
    @"{""error"":{""httpCode"":400,""message"":""Invalid parameters""}, ""message"":{""errors"": 
    {""password"":""is too short"" 
    ,""email"":""is invalid""}}}"; 

JObject jObject = JObject.Parse(data); 

JObject errors = (JObject)jObject["message"]["errors"]; 

foreach(var error in errors) 
{ 
    MessageBox.Show(p.Key + p.Value);     
} 
+0

감사를 너, 고마워. – Roger