일부 JSON 코드를 구문 분석하기 위해 vb.net windows 폼 응용 프로그램을 사용하려고합니다. 내 코드를 잘 빌드하고 컴파일하지만 단추를 클릭하는 순간 예외가 발생합니다.vb.net을 사용하여 예외가있는 json 코드를 통해 구문 분석
Newtonsoft.Json.JsonReaderException : 'NaN 값을 파싱하는 중 오류가 발생했습니다. 경로 ', 줄 1, 위치 1' 나는 그것을 해결하기 위해 노력했다
For Each item As JObject In JArray.Parse(jsonObjects.SelectTokens("items").ToString)
,하지만 난 방법을 더 이상 모르는 :
예외는 내 코드의 끝 부분에이 줄을 가리키고 있습니다. 당신은 루프 시작에 예외에 도착하기 전에 매우 유용 아무것도에서이 늘 결과
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim jsonString As String = "{""id"":1, ""name"":""tom"",
""items"":[
{""name"":""apple"", ""count"":1 },
{""name"":""milk"", ""count"":2 }
]
}"
Dim jsonObjects As JObject = JObject.Parse(jsonString)
Console.WriteLine("id:" & jsonObjects.SelectTokens("id").ToString)
Console.WriteLine("name:" & jsonObjects.SelectTokens("name").ToString)
Console.WriteLine("items:" & jsonObjects.SelectTokens("items").ToString)
'Dim jsonArray As JArray = JArray.Parse(jsonObjects.SelectTokens("items").ToString)
For Each item As JObject In JArray.Parse(jsonObjects.SelectTokens("items").ToString)
Console.WriteLine("item:" & item.SelectTokens("name").ToString)
Next
End Sub
End Class
예외가 항상 그들과 관련된 설명이있다; 당신은 그 정보를 공유하지 않으므로 우리가 어떤 문제를 해결하고 있는지 알 수 없습니다. 단순한 것보다 많은 것을 얻으 려한다면 NET 객체 컬렉션으로 비 직렬화하는 것이 더 쉬울 수도 있습니다. – Plutonix
예외에 대한 세부 정보를 추가하면 다른 사람들이 귀하의 질문을 분석하는 데 도움이됩니다. JSON을 올바르게 역 직렬화 할 수 있도록 사용자 정의 핸들러를 추가해야 할 수도 있습니다. Newtonsoft.Json.JsonConverter 클래스를 살펴보십시오. – tatmanblue
아마도 3 개의 WriteLine 결과를 백업하고 검사하고 싶을 것입니다. SelectTokens는 JToken과 ToString()의 IEnumerable을 리턴합니다. – Plutonix