1
{"filters": 
[
    [
      "Color",
      [
        [
          "Blue",
          629,
          "t12-15=blue"
        ],
        [
          "Green",
          279,
          "t12-15=green"
        ]
      ]
    ],
    [
      "Style",
      [
        [
          "Contemporary / Modern",
          331,
          "t6-11=contemporary+modern"
        ],
        [
          "Transitional",
          260,
          "t6-11=transitional"
        ],
      ]
    ]
]}

これは 4 次元配列のように見えますが、ServiceStack.Text.JsonSerializer を使用して逆シリアル化しようとすると、期待した結果が得られません。

「Color」と「Style」の値が配列自体に含まれていないようです。これはどのような Json 構造ですか?

4

5 に答える 5

1

それは確かに、オブジェクトにラップされた配列の配列の配列の配列です。これは非常に恐ろしいことですが、なぜ JsonSerializer がそれを詰まらせるのかわかりません。

于 2013-04-24T19:20:45.483 に答える
1

私には、4 レベルの深さの配列の配列を含むオブジェクトのように見えるので、4D arrayである 1 つのフィールドを持つオブジェクトです。4D配列を取得したい場合は、filters返されたjsonオブジェクトからフィールドを取得する必要があります

于 2013-04-24T19:19:59.183 に答える
1

どんな構造?イレギュラーです、本当に。最初の項目が文字列である配列を含む配列を含むフィールドを含むオブジェクトで、2 番目の項目は文字列、数値、および文字列項目の配列である 2 つの項目を含む配列です .... ふー!

これはまったく問題ありません。

于 2013-04-24T19:27:35.407 に答える
0

オブジェクトの代わりに配列を使用してマップを表すように要求すると、Jackson が生成する可能性があるものとほぼ同じように見えます。

于 2013-04-24T19:22:14.537 に答える
0

Style と Color は、それらが含まれる配列の最初のインデックスにすぎません。これは、意図したものではないことはほぼ確実です。スタイルはおそらく、兄弟ではなく次の配列のラベル (オブジェクト) である必要がありますか? 明らかなフォローアップの質問は、誰/何がこの JSON を生成しているか、誰/何がそれを消費しているかということです... bmarguiles が尋ねるように... JSON が構文的に有効であることを考えると、*ここであなたの期待は何ですか?あなたは何を期待しています...何を期待していますか?

コメントに基づいて編集します。

まあ...これらはすべてネストされた配列であり、探しているラベルは配列の0番目のインデックスになるという事実に依存できるように見えるので、探している配列に再帰することができますそのラベルに対して、最初のインデックスにある配列を、期待するデータが含まれているという前提で扱います。見苦しいですが、動作するようです (これを生成するサービスが変更されない限り)。C# には JSON デシリアライザー james.newtonking.com/pages/json-net.aspxがあります。あなたはそれを使うべきです。

于 2013-04-24T19:25:10.170 に答える