从所选对象创建JSON

时间:2012-08-08 06:20:08

标签: java javascript html json

我想创建所选选项的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。

感谢任何帮助。

2 个答案:

答案 0 :(得分: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();
  }
}

这有助于保持代码面向对象......然后您的应用程序逻辑可以引用域对象而不是操作基本字符串。

答案 1 :(得分:0)

我正在使用hibernate做很多时间,然后使用flexjson

将集合对象转换为json