vb.net windowsフォームアプリケーションを使用してJSONコードを解析しようとしています。私のコードはうまく構築されてコンパイルされますが、私のボタンをクリックすると、例外が発生します。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