2016-10-22 5 views
1

私はこのようなJSONを持っている:GSONのデシリアライズ/キーの名前を未定たJSON文字列をシリアル化

# "trig_cond": { 
#  "_and": { 
#    "param1": ["op", "value1"], 
#    "param2": ["op", "value2"], ... 
#  }, 
#  "_or": { 
#    "param1": ["op", "value1"], 
#    "param2": ["op", "value2"], ... 
#  } 
# } 

「_and」/「_または」一部のオブジェクトを一覧表示するマップキーの未定数を持っています(それぞれ2つの項目を含む)。 これをどのようにしてJavaオブジェクトに逆シリアル化できますか?私はさまざまなカスタムデシリアライズオプションを見てきましたが、私はこの例jsonのためにそれを行う方法を理解していません。

答えて

1

要件に応じて選択できるオプションはほとんどありません。未知数のキーがあるときに取ることができる最も簡単なソリューションの1つは、POJOのこれらの部分をJSONObjectのままにすることです。

たとえば、このPOJOは、JSONを非直列化してJavaオブジェクトにデシリアライズするという要件を満たし、柔軟性を提供します。

public class SamplePojo { 
    TrigCond trig_cond; 

    public static class TrigCond { 
     JsonObject _and; 
     JsonObject _or; 
    } 
} 

必要に応じて別のファイルに分割することもできます。

public class SamplePojo { 
    TrigCond trig_cond; 

    public static class TrigCond { 
     Map<String, String[]> _and; 
     Map<String, String[]> _or; 
    } 
} 
を:

また、あなたの例であるため、あなたがあなたの代わりにここでMap

使用でき、これらのparam1param2配列要素に含まれる値の種類を知っているあなたが好むかもしれ別の例であります

あなたの質問が正しく理解されているかどうか教えてください。

関連する問題