0

さまざまなWebサービスからのフィードを管理する.netアプリを作成しています。JSON.NETの使用を開始したばかりで、JSONから.netオブジェクトへのすべての変換を実行しようとしています。

そのため、JSONとして取得できないフィードについては、XMLを取得して最初にJSONに変換し、次にJSONを処理する単一のメソッドセットを使用して実際の作業を行うことができると考えました。

これを行う際に、次の問題が発生しました。XMLをでJSON文字列(と呼ばれるmyInput)に変換した後、次JsonConvert.SerializeXmlNode(myXMLdoc)を使用するとエラーが発生しますJsonConvert.DeserializeObject(Of List(Of Object))(myInput)

JSONオブジェクトをタイプ'System.Collections.Generic.List`1[System.Object]'に逆シリアル化できません。行1、位置8。

myInputこのように始まります:

{"?xml":{"@version":"1.0","@encoding":"UTF-8","@standalone":"yes"},"items":{"@size":"72","item":[{"id":"123456","description": ...

したがって、私の質問は具体的にはこのエラーの原因ですが、一般的に私のアプローチが良いアイデアであるかどうか(つまり、続行する前にすべての入力データをJSONに変換する)、または実行するための確立されたパターンがあるかどうかも聞いてうれしいですこの種のことについて学び、実装する方がよいでしょう。

4

1 に答える 1

1

問題はJSON文字列のフォーマットが間違っていることにあると思います。

デシリアライズは、JSONオブジェクトをリストにデシリアライズできないという不満を持っています。

{} -JSONオブジェクト=プロパティを持つ.NETオブジェクトまたは.NETディクショナリを意味します

[] -JSON配列=.NET配列またはリストを意味します

したがって、json文字列からアイテムのみを抽出し、それらを「[]」として保存する必要があります。

于 2012-04-09T08:59:57.970 に答える