2016-12-08 9 views
0

多くのオブジェクトが内部にあり、それぞれに文字列の配列を持つJSONを生成する必要があります。私はJava、より具体的にはAndroidを使用しています。Android - JSON - Xオブジェクトとそれぞれの内部に配列を持つJSONを作成する方法

私は次のようなものを生成します:

"manager1": [ 
     {"product1":"xxxx"}, 
     {"product2":"yyyy"}, 
     {"product3":"zzzz"} 
    ], 
"manager2": [ 
     {"product1":"xxxx"}, 
     {"product2":"yyyy"}, 
     {"product3":"zzzz"} 
    ] 

私はちょうどそれが私のAsyncTaskクラス内に収まるだろうか確認するためにトラブルを抱えています、製品情報のこのマネージャーと配列を持つBeanクラスを持っている

答えて

1

あなたのキーに数字を追加しないことをお勧めします。それはちょうどあなたのJavaクラスを台無しにする。

すべてのリストを使用します。あなたはJSON文字列にオブジェクトを変換するために、Gsonライブラリを使用できるオブジェクトを持っている場合は

{ 
    "managers": [ 
     { 
      "name": "manager1", 
      "products": ["xxx", "yyy", "zzz"] 
     }, 
     { 
      "name": "manager2", 
      "products": ["xxx", "yyy", "zzz"] 
     } 
    ] 
} 

あなたのPOJO /豆はとても

class Foo { 
    List<Manager> managers; 
} 

class Manager { 
    String name; 
    List<String> products; 
} 
+0

非常に解明してくれてありがとう – Guigs

+1

@Guilhermeあなたの問題を解決した場合、答えに「受け入れられる」とマークしてください。 – Mangesh

+0

@Mangesh完了。あなたはもう1つのことで私を助けてくれますか?私はどのようにこれらのリストをAsyncTaskでどのように渡してStringにするかわかりません... params – Guigs

0

ようになります。

Gson gson = new Gson(); 
String json = gson.toJson(obj); 

Javaコードでクラスの構造について質問すると、android.util.Pair配列のマップになります。

Map<String, Pair<String, String>[]> map; 

しかし、あなたはPairクラス用に独自のシリアライザとデシリアライザを作成する必要があります。あなたがここで見つけることができる答え:How do I get Gson to serialize a list of basic name value pairs?

関連する問題