1

私はjsonに次の構造を持っています。

[
  {
    "Name": "FieldMapName1",
      "Fields": [
      {
        "Name": "FieldName1",
        "Values": [
          {
            "ID": 1,
            "Value": "Value1"
          },
          // ...
        ]
      },
      // ...
    ]
  },
  // ...
]

それを次のように変換する方法はありますか:

Map<String, FieldMap> fieldMap;

各フィールド マップ オブジェクトには次が含まれます。

Map<String, Field> fields;

そして各フィールド:

Map<Integer, String> values;

カスタムデシリアライザーを作成する必要がありますか、それともより良いアプローチがありますか?

4

2 に答える 2

1

基本的に、JSONはそのクラス構造を表していないため、解析したいクラス構造でJSONを解析することは絶対にできません...

まず、JSON 全体が で囲まれているため、 aはオブジェクト ( で囲まれている) であるため、[ ]それを に解析することはできず、マップに変換する他の要素でも同じことが起こります...MapMap{ }

JSON 要素は、実際には次のクラス構造で表されます。

List<FieldMap>

class FieldMap
  String Name
  List<Field> Fields

class Field
  String Name
  List<Value> Values

class Value
  int ID
  String Value

したがって、この構造で JSON を解析してから、データをクラス構造に移動するか、カスタムのデシリアライザーを作成する必要があります...ここで例を見つけることができます...試すことができます。作成中に問題が発生しました もう一度質問してください...

于 2013-07-25T15:32:38.730 に答える