任何人都可以帮我如何从数据库创建JSON对象吗?
这就是 JSON输出应该是这样的:
{“devicelist”:{
“device”: [
{“id”: “01”, “type”: “CAM”, “name”: “Livingroom”}
{“id”: “15”, “type”: “CAM”, “name”: “Kitchen”}
]
}}
这是我的代码:
if (reg!=null)
{
try
{
con = ds.getConnection();
Statement select = con.createStatement();
ResultSet result=select.executeQuery("Select type,name,demo from register_device");
while (result.next())
{
String type_json=result.getString("type");
String name_json=result.getString("name");
String id_json=result.getString("demo");
JSONArray arrayObj=new JSONArray();
}
}
catch(Exception e)
{
}
}
我可以从数据库中获取所选的类型,名称,演示。
我不知道如何启动JSON编码。
答案 0 :(得分:8)
如果要从数据库中提取数据并自己构造JSON对象,可以执行以下操作:
JsonArray jArray = new JsonArray();
while (result.next())
{
String type_json=result.getString("type");
String name_json=result.getString("name");
String id_json=result.getString("demo");
JsonObject jObj = new JsonObject();
jobj.put("id", id_json);
jobj.put("type", type_json);
jobj.put("name", name_json);
jArray.put(jObj);
}
JsonObject jObjDevice = new JsonObject();
jObjDevice.put("device", jArray);
JsonObject jObjDeviceList = new JsonObject();
jObjDevice.put("devicelist", jObjDevice );
现在jObjDeviceList
包含所有数据。
答案 1 :(得分:0)
使用jOOQ,您可以从数据库中生成类似的JSON列表:
String json = create.select(TYPE, NAME, DEMO)
.from(REGISTER_DEVICE)
.fetch()
.formatJSON();
JSON字符串如下所示:
{fields:["TYPE","NAME","DEMO"],
records:[["01","CAM","Livingroom"],["15","CAM","Kitchen"]]}
这不完全是您在问题中所要求的,但也许您不依赖于您建议的确切JSON格式?此外,您可以稍后转换该JSON对象。
在此处查看更多信息:
http://sourceforge.net/apps/trac/jooq/wiki/Manual/ADVANCED/Export
答案 2 :(得分:0)
如果您有Device
个对象,json-lib
可以使用get()
方法将对象序列化为JSON。
import java.util.*;
import net.sf.json.*;
public class JsonEncode {
public static void main(String[] args) throws Exception {
Device d1 = new Device("01", "CAM", "LivingRoom");
Device d2 = new Device("15", "CAM", "Kitchen");
List<Device> devices = new ArrayList<Device>(Arrays.asList(d1, d2));
JSONArray serializedDevices = JSONArray.fromObject(devices);
JSONObject jsonDevices = new JSONObject();
jsonDevices.put("devices", serializedDevices);
JSONObject json = new JSONObject();
json.put("deviceList", jsonDevices);
System.out.println(json);
}
public static class Device {
Device(String id, String type, String name) {
this.id = id;
this.type = type;
this.name = name;
}
private String id;
public String getId() { return id; }
private String type;
public String getType() { return type; }
private String name;
public String getName() { return name; }
}
}
保存为:JsonEncode.java
编译:
javac -cp json-lib-2.4-jdk15.jar JsonEncode.java
执行时(注意:classpath有DOS
分隔符):
java -cp .;json-lib-2.4-jdk15.jar;commons-lang-2.6.jar;commons-logging-1.1.1.jar;commons-collections-3.2.1.jar;ezmorph-1.0.6.jar;commons-beanutils-1.8.0.jar JsonEncode
依赖关系:
答案 3 :(得分:0)
if