我想从数据库中创建JSON对象,但有一个复杂的结构。我不清楚如何制作复杂的结构,如"价值观"在关注Json string.Help任何人,提前谢谢。这是我想要的Json字符串:
[{"type":"person1","id":null,"values":[[[32.3619,50.9291],[32.3604,50.9644],[32.3446,50.9395]]]}]
我已尝试过的代码。
Session sess1 = sf.openSession();
Query q = sess1.createQuery("from person");
List l = q.list();
Iterator itr = l.iterator();
JSONArray jArray = new JSONArray();
JSONObject jObj = new JSONObject();
String id = null, lat, lng;
while (itr.hasNext()) {
Person pobj = (Person) itr.next();
id = pobj.getId().toString();
lat = pobj.getLatitude();
lng = pobj.getLongitude();
}
jObj.put("type", "Person1");
jObj.put("id", id);
JSONArray jrray = new JSONArray();
jArray.put(jObj);
JSONObject jObjDevice = new JSONObject();
jObjDevice.put("", jArray);
System.out.println("json object created" + jObjDevice.toString());
答案 0 :(得分:1)
使用jackson ...
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class MapToJsonExample {
private static final String pathToJsonResult = "example.json";
public static void main(String[] args) {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> mapObject = new HashMap<String, Object>();
mapObject.put("type", "person1");
mapObject.put("id", null);
List<Object> myList = new ArrayList<>();
List<Double> point1 = Arrays.asList( 32.3619,50.9291 );
List<Double> point2 = Arrays.asList( 32.3446,50.9395 );
List<List<Double>> innerList = new ArrayList<>();
List<List<List<Double>>> outerList = new ArrayList<>();
innerList.add( point1 );
innerList.add( point2 );
outerList.add( innerList );
mapObject.put( "values", outerList );
try {
objectMapper.writeValue(new File(pathToJsonResult), mapObject);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这里,使用Windows和Java7,
编译它..
javac -cp .;jackson-all-1.9.11.jar MapToJsonExample.java
运行它......
java -cp .;jackson-all-1.9.11.jar MapToJsonExample
瞧!
type example.json
{"values":[[[32.3619,50.9291],[32.3446,50.9395]]],"id":null,"type":"person1"}
答案 1 :(得分:0)
如果使用java,那么使一个模态类与数据库表字段相同,并将db的结果集转换为该模态类....模态类是java实体.....
基于该java实体使用gson [com.google.code.gson] lib并将其转换为...
你只是在那里搜索了很多例子。
答案 2 :(得分:0)
我鼓励你避免使用所有这些样板代码并使用JPA和像Jackson这样的框架。业务应用程序开发人员不应该浪费时间在这些基础架构上:)))
答案 3 :(得分:0)
我想你使用像MySQL这样的关系数据库。要以对象形式检索记录,您可以使用Hibernate ORM。你可以在互联网上找到大量的教程。