1

選択したオプションの JSON オブジェクトを作成したい。私はすでに Java コードを作成しましたが、すべてのデータベース値の JSON を作成します。

JSON コードは次のとおりです。

rs = stmt.executeQuery("SELECT file_id,fid from nonspatial_data  where file_id=1");

JSONArray jArray = new JSONArray();

while (rs.next())
{  
    String  FileID_json=rs.getString("file_id");
    String fid_json=rs.getString("fid");
    JSONObject jobj = new ``JSONObject();
    jobj.put("file_id", FileID_json);
    jobj.put("fid", fid_json);
    jArray.add(jobj);
}

JSONObject features = new JSONObject();
features.put("features", jArray);

選択したfile_idのjsonを作成したい。

任意の支援をいただければ幸いです。

4

2 に答える 2

0

jsonに使用する形式はわかりませんが、実際には、jacksonのようなライブラリを使用する必要があります(これには、シリアライザー/マッパーが役立ちます)。これを使用する方法は次のとおりです。jsonオブジェクトを表すドメインオブジェクトを作成し、それをこのシリアライザーに渡すと、jsonが作成されます。

注:コードを簡潔にするために、Javaのベストプラクティス(文字列定数の作成など)は使用しません。私もこのコードをテストしていませんが、私が提案していることについて非常に良いアイデアを得る必要があります。

public class SomeObject{ 
  Map<String,Object> model;
  public void setFoo( String foo ) {...}
  public String getFoo() {
    return model.get( "foo" );
  }

  // if you have more than one model, consider moving this method to a superclass
  public String toJson() {
    Map<String, Object> result = new HashMap<String, Object>();
    String status;
    List<String> errors = new ArrayList<String>();

    ObjectMapper mapper = new ObjectMapper();
    result.put("status", status);
    result.put("errors", errors);
    StringWriter sw = new StringWriter();
    mapper.writeValue(sw, result);
    return sw.toString();
  }
}

これにより、コードをオブジェクト指向に保つことができます。アプリロジックは、基本的な文字列を操作する代わりに、ドメインオブジェクトを参照できます。

于 2012-08-08T15:33:12.377 に答える
0

私はこれをhibernateを使用して多くの時間行ってから、flexjsonを使用してコレクションのオブジェクトをjsonに変換しています

于 2012-08-09T00:11:15.533 に答える