Java 从选定对象创建JSON
我想创建所选选项的JSON对象。我已经编写了java代码,但它创建了所有数据库值的JSON JSON代码是:Java 从选定对象创建JSON,java,javascript,html,json,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");
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);
我想创建所选文件的json
非常感谢您的帮助。我不确定您希望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();
}
}
这有助于使您的代码面向对象……然后,您的应用程序逻辑可以引用域对象,而不是操纵基本字符串 我经常使用hibernate来完成这项工作,然后使用