0

現在、org.jsonJSONライブラリを使用しています。

JSONArray data = new JSONArray();

        for (PkgLoad pkgLoad : list) {
            JSONArray row = new JSONArray();
            row.put(Double.parseDouble(df.format(pkgLoad.ounces)));
            row.put(pkgLoad.revolutions);
            data.put(row);
        }
        jsonResponse.put("aaData", data);

これが私のアレイの構築方法です。行ごとに(私はこれを行うのが好きです。)他のライブラリで行ごとにデータを構築する方法がある場合は、私に知らせてください。

ともかく。その方法で私はこれを手に入れます。

"aaData":[[2.55,6],[2.54,6],[2.53,6],[2.54,6],[2.55,6],[2.52,6],[2.55,6],[2.52,6],[2.54,6],[2.53,6]]}

それはいいです。フィールド名は省略されています。他のライブラリでは、フィールド名を取得します。だからこれになります。

 "aaData":[["ounces" : 2.55, "revolutions" : 6], etc, etc}

このフィールドを省略するにはどうすればよいですか。どうもありがとうございます。

4

1 に答える 1

2

したがって、Flexjsonを使用すると、データモデル(つまり、PkgLoad)からJSONを構築するために行った作業を複製することはありません。そのオブジェクトをJSONに変換したい場合は、次のようにします。

List<PkgLoad> packages = new ArrayList<PkgLoad>();
packages.add( new PkgLoad( 24.3, 6 ) );
packages.add( new PkgLoad( 45.3, 5 ) );
packages.add( new PkgLoad( 23.3, 4 ) );
...
String json = new JSONSerializer().serialize( packages, "aaData" );

これにより、次のようなJSONが生成されます。

{ "aaData": [ { "ounces": 24.3, "revolutions": 6 }, { "ounces": 45.3, "revolutions": 5 }, { "ounces": 23.3, "revolutions": 4 } ] }

なんで?与えたリストオブジェクトには、「オンス」と「革命」の2つのフィールドを持つオブジェクトが含まれているため、これが返されます。

オブジェクトモデルをJSONに変換するために多くの定型コードを記述する必要なしに、JSONをエンコードするのは1行であるため、これはすばらしいことです。柔軟でなければならないのは、JSON出力が(多かれ少なかれ)オブジェクトモデルの設計を反映するということです。Flexjson、gson、およびjacksonに満足している場合は、オブジェクトをJSONに変換するというありふれたタスクをすべて処理して、コードの記述に戻ることができるようにします。

ただし、オブジェクトモデルとは大幅に異なる形式のJSONを使用する必要がある場合は、org.jsonライブラリを使用して手動で行うのが最適です。オブジェクトを投稿したもののようなものに変換する方法をこれらのライブラリに伝えようとすると、手動で作成するのと同じくらい多くの作業が必要になります。

于 2011-06-07T22:44:00.947 に答える