0

jsonObject を作成する汎用クラスを作成したいと思います。次のようなさまざまな種類のオブジェクトを作成できるクラスを作成することは可能ですか?

{"chunkSize":10,"filters"
[{"field":"segmentOwners.id","operator":"EQUAL","value":"11578","valueType":"java.lang.Integer"},
{"field":"language","operator":"EQUAL","value":"FR","valueType":"java.lang.String"},
{"field":"customerId","operator":"EQUAL","value":"77","valueType":"java.lang.Integer"}]
,"orderBy":[{"field":"creationTime","order":"DESC"}],"page":0}

または単純なリクエスト:

{login:"mylogin",pwd:"mypwd"}

私は次のようなものを試しました:

    @Override
    protected JSONObject doInBackground(String... params) {
        byte[] result = null;
        Iterator iter = mData.entrySet().iterator();

       JSONObject jsonObj = new JSONObject();

        Iterator it = mData.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pairs = (Map.Entry)it.next();
            try {
                jsonObj.put((String) pairs.getKey(), (String) pairs.getValue());
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            it.remove(); // avoids a ConcurrentModificationException
        }

しかし、それが同じ種類のハッシュマップであるかどうかはわかりません(文字列、jsonObjet ...?)

4

2 に答える 2

1

JSON 文字列からのインスタンスを作成する場合はJSONObject、次のようにします。

JSONObject jsonObj = new JSONObject("<your json string>");
于 2012-08-27T13:44:15.853 に答える
0

保持するデータ (つまり、 )DataContainerに関係なく、統合 API を公開する汎用コンテナー クラス (つまり、) を作成します。次に、データ構造ごとに個別のオブジェクトを作成します (つまり、)。次に、リモートソースからjsonデータを取得するときに、オブジェクトを作成してそれを渡すことができます(または、jsonをDataContainerに渡して、使用する必要があることを検出してそれ自体を作成できるようにしますが、最良のアプローチではない可能性のあるロジックが必要です)。次に、jsonデータで動作すると予想されるすべてのメソッドをDataContainerオブジェクトに渡すことができ、メソッドはそれに対して実行できます(もちろん、タイプを自分で設定する必要があります)。これにより、格納されているデータが返され、データ自体が動作するようになりますの上。setFromJson()getData()DataLoginDataSomethingDataLoginDataContainerDataLogingetType()getData()

于 2012-08-27T13:45:48.003 に答える