0

これは私のJsonです:

{"array":[
          {"pid":"1","product":"test","size":[
                                              {"id":"26","size":"6-13 weeks"},
                                              {"id":"25","size":"1-5 weeks"}]},
          {"pid":"2","product":"test2","size":[
                                              {"id":"31","size":"86\/92"},
                                              {"id":"27","size":"74\/80"}]}]}

jsongen.byingtondesign.comでファイルを生成しましたが、データを取得する方法がわかりません (多くのチュートリアルを見ましたが、それらがすべて異なるため、さらに混乱します)。

pid と id に応じてデータを取得する必要があります。製品文字列を pid ... で、またはサイズ文字列を id ... で出力する必要があります (json を再構築する必要がありますか?)

私を先に進めるには、いくつかのヒントが必要です。

ありがとう!

4

1 に答える 1

1

必要な構造は次のようなものです

class Size {int id; String size;}
class Product {int pid; String product; List<Size> size;}
class Shop {List<Product> products;}

そして、ただ電話する

Shop shop = gson.fromJson(jsonString, Shop.class);

ここでは、何が何だか思い出せませんでした。構造は問題ないように見えますが、名前はそうではありません。私は次のようなものを提案します

class Size {int id; String name;}
class Product {int id; String name; List<Size> sizes;}
class Shop {List<Product> products;}

地図のようなものを好むようですね。これは Java で簡単にできることですが、Json に入れることもできます。ただし、冗長性を導入するかid、オブジェクトから を失います。それ以外の

[
    {"id":"26","size":"6-13 weeks"},
    {"id":"25","size":"1-5 weeks"}
]

どちらでも使用できます

{
    "26": {"id":"26","size":"6-13 weeks"},
    "25": {"id":"25","size":"1-5 weeks"}
}

(冗長性あり)または

{
    "26": {"size":"6-13 weeks"},
    "25": {"size":"1-5 weeks"}
}

Sizeオブジェクトが欠落しているid)または

{
    "26": "6-13 weeks",
    "25": "1-5 weeks"
}

コンパクトですが、ほとんど拡張できません。いずれにせよ、私は Json の代わりに Java から始めたいと思います。Java は多くのことを扱うことになるので、これは物事をより簡単にします。Json 文字列は Gson によって読み書きされるため、見た目をあまり気にする必要はありません。

于 2012-08-06T12:20:33.017 に答える