2012-05-18 8 views
1

json.net을 사용하여 json을 하나 가지고 있고 내용을 파싱합니다. 먼저 JToken을 사용하여 게시물의 필드를 개체 목록으로 분할 한 다음 각 필드에서 값을 읽습니다. 문제는 이러한 개체 중 일부는 때때로 필드가 있고 때때로 불투명 오류를 방지하는 방법을 모르거나 모르는 경우입니다.json.net 어린이가 있는지 확인하십시오.

가 위치 필드 내 코드에 널 (null) 오류가 발생합니다 사용자 개체에 존재하지 않는 일부 게시물에 이제
{"id": "dfdksfjaisdfdsjfksdjdfsdafernd"} 
{"body": "test data for parsing"} 
{"object": { "summary":"hello test data you trouble maker", "id" :"problem stuff", 
      "link": "http://testdata.com", 
      "objecttype": "link" 
}} 
{"user": { "name": "Joe Somebody", "age":"43", "location": { "name": "outer space"}, 
     } 
} 

아래 그림과 같이도 언젠가 객체 객체가 같은 다른 형식으로 다음은 JSON의 샘플입니다 다음 :

{"id": "dfdksfjaisdfdsjfksdjdfsdafernd"} 
    {"body": "test data for parsing"} 
    {"object": { "object": 
      {"summary":"hello test data you trouble maker", "id" :"problem stuff", 
      "link": "http://testdata.com", 
      "objecttype": "link" 
     } 
    }} 
    {"user": { "name": "Joe Somebody", "age":"43", 
      } 
    } 

이제 다음 내 코드 인 것처럼 : 위치와 객체가 다른 경우

 Dim results As List(Of JToken) = jobj.Children().ToList 

     If results.Count = 0 Then 
      Exit Sub 
     End If 

     For Each item As JProperty In results 
      item.CreateReader() 
      If item.Name = "id" Then 
       id = item.Value 
      End If 
      If item.Name = "actor" Then 
       author = item.Value("name").ToString 
       location = item.Value("location").Item("name").ToString 
       age = item.Value("age").ToString 
      End If 
      If item.Name = "object" Then 
       htext = item.Value("summary").ToString 
       csubject = item.Value("objectType").ToString 
      End If 
    Next 

그런 다음이 코드가 작동하지 않습니다. 그래서 어떻게 위치 필드가 존재하는지 그리고 오브젝트 경로가 요약 필드 이전의 다른 오브젝트와 다른지를 점검 할 수 있습니다.

편집 :

If Not item.Value("location") Is Nothing Then 
    bla bla bla 

와 객체의 같은 : 나는

확인
If Not item.Value("location") Is Nothing Then 
    bla bla bla 
+0

여전히 뭔가를 위해 null 오류를 얻는 완전히 작동하지 않았다. – vbNewbie

답변

-1

그것을 알아 냈

좋아 생각 나는 그것이 잘못 구성된 JSON에서 작업 및 널 (null) 예외를했던 것 같아요

If Not item.Value("summary") Is Nothing Then 
    bla bla bla 
    else 
    htext = item.Value("object").Item("summary").tostring 
관련 문제