- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何在 Java 中使用 JSONObject 创建如下所示的 JSON 对象?
[
{
"title": "ZAKI",
"start": "2010-05-01",
"placemarks": [
{
"polyline": [
{
"lat": 48.22467264956519,
"lon": 16.32568359375
},
{
"lat": 47.517200697839414,
"lon": 18.984375
},
{
"lat": 45.84410779560204,
"lon": 15.9521484375
},
{
"lat": 48.22467264956519,
"lon": 16.32568359375
}
]
},
{
"point": {
"lat": 48.22467264956519,
"lon": 16.32568359375
}
},
{
"point": {
"lat": 47.517200697839414,
"lon": 18.984375
}
},
{
"point": {
"lat": 45.84410779560204,
"lon": 15.9521484375
}
}
]
}
]
我正在使用 servlet。
这是我的 servlet 代码
JSONArray arrayObj = new JSONArray();
for (int i = 0; i < listDataTracking.size(); i++) {
JSONObject obj = new JSONObject();
EntityTracking dataTracking = listDataTracking.get(i);
if (dataTracking.getIdTracking() == null) {
obj.put("Id", "");
} else {
obj.put("Id", dataTracking.getIdTracking());
obj.put("title", dataTracking.getUser_name().getUserName().toUpperCase());
obj.put("start", sdf.format(dataTracking.getTglSend()));
//
String lat = "";
String lon = "";
String jamSend = "";
Long id = 0l;
//
String queryStmnt_geoTracking = "SELECT entityGeoTracking.id FROM EntityGeoTracking entityGeoTracking "
+ "WHERE entityGeoTracking.idTracking.idTracking=\"" + dataTracking.getIdTracking() + "\"";
javax.persistence.Query query_geoTracking = em.createQuery(queryStmnt_geoTracking);
System.out.println("Isi queryStmnt_geoTracking" + queryStmnt_geoTracking);
List<EntityGeoTracking> cekid = query_geoTracking.getResultList();
if (cekid.isEmpty()) {
System.out.println("Isi cekid == null");
return;
}
System.out.println("Isi cekid" + cekid);
EntityGeoTracking dataGeoTraking = em.find(EntityGeoTracking.class, cekid);
if (lat.isEmpty()) {
lat = dataGeoTraking.getGetLatitude();
}
if (lon.isEmpty()) {
lon = dataGeoTraking.getGetLongitude();
}
if (id == 0l) {
id = dataGeoTraking.getId();
}
if (jamSend.isEmpty()) {
jamSend = dataGeoTraking.getJamSend();
}
System.out.println("chek value lat, lon, id, jamSend" + lat + "" + lon + "" + id + "" + jamSend);
javax.json.JsonArray value = Json.createArrayBuilder()
.add(Json.createObjectBuilder()
.add("polyline", Json.createObjectBuilder()
.add("lat", lat)
.add("lon", lon)))
.add(Json.createObjectBuilder()
.add("point", Json.createObjectBuilder()
.add("lat", lat)
.add("lon", lon)))
.build();
obj.put("placemarks", value);
}
arrayObj.add(obj);
}
em.close();
JSONObject rows = new JSONObject();
// rows.put("results", arrayObj);//results
// rows.put("results", listDataTracking.size());//results
// rows.put("rows", arrayObj);
// writer.print(rows.toString());
// rows.put("", listDataTracking.size());//results
rows.put("", arrayObj);
System.out.println(" List : " + arrayObj.toString());
writer.print(arrayObj);
writer.close();
// }
// br.close();
} catch (Exception ex) {
ex.getMessage();
System.out.println("ERROR: " + ex.getMessage());
} finally {
if (em != null && em.isOpen()) {
em.close();
}
}
}
我的输出 JSON 格式
[
{
"Id": 1,
"title": "ZAKI",
"start": "2016-06-15",
"placemarks": [
{
"polyline": {
"lat": {
"chars": "-6.2206080",
"string": "-6.2206080",
"valueType": "STRING"
},
"lon": {
"chars": "106.7810640",
"string": "106.7810640",
"valueType": "STRING"
}
}
},
{
"point": {
"lat": {
"chars": "-6.2206080",
"string": "-6.2206080",
"valueType": "STRING"
},
"lon": {
"chars": "106.7810640",
"string": "106.7810640",
"valueType": "STRING"
}
}
}
]
}
]
我已经尝试过很多次了,但是都没有成功。请帮忙!
最佳答案
{
"title": "ZAKI",
"start": "2010-05-01",
"placemarks": [
{
"polyline": [
{
"lat": 48.2246726495652,
"lon": 16.32568359375
},
{
"lat": 47.5172006978394,
"lon": 18.984375
},
{
"lat": 45.844107795602,
"lon": 15.9521484375
},
{
"lat": 48.2246726495652,
"lon": 16.32568359375
}
]
},
{
"point": {
"lat": 48.2246726495652,
"lon": 16.32568359375
}
},
{
"point": {
"lat": 47.5172006978394,
"lon": 18.984375
}
},
{
"point": {
"lat": 45.844107795602,
"lon": 15.9521484375
}
}
]
}
首先使用some formatting tool格式化您的 json,以便您可以轻松了解预期输出与实际输出的差异。
对于折线对象,您应该有一个数组而不是对象中的对象。
Json.createObjectBuilder().add("polyline",
Json.createObjectBuilder().add("lat", lat).add("lon", lon))
)
关于java - 如何使用 Servlet 使用 JSONObject 在 Java 中创建正确的 JsonArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37806587/
我正在使用网络服务请求直方图数据。数据是数组中的一组数组: [[1375056000000,23.284713745117],[1375142400000,3.809531211853], [1375
这是我的 json 文件的相关部分: "categories": [ [ "Belgian Restaurant", "belgian" ],
我目前很困惑,为什么我不能在我的 Android 应用程序中从 JSONArray 中提取 JSONArray。下面给出了一个示例和我的源代码片段。 //The JSON { "cur
我正在尝试解析 JSONObject。 这个 JSONObject 中有一个 JSONArray,它在 JSONArray 中还有另一个 JSONArray。 我试图解析的 json 形式如下。 {
我正在尝试解析对象数据列表中的 JSON 数组 payment_details。 在这里,我已经成功解析了回收站 View 中调用的数据数组,但我无法调用 payment_details 数组。 适配
我正在寻找一个选项,可以将多个值添加到 JSONArray 并将其添加到另一个 JSONArray 中,而无需创建多个变量。例如: JSONArray array1 = new JSONArr
我遇到过一种情况,org.json.JSONArray 对象非常大,这最终会导致延迟和其他问题。因此,我们决定将 JSONArray 分割成更小的 block 。例如,如果 JSONArray 是这样
您好,我正在尝试在另一个 json 数组中解析一个 json 数组。帮我解决这个问题。 我的 Json 数组是 "results":[ { "percentcompleted"
我正在使用 Gson用于解析 json 响应。我需要在 JsonArray 中解析 JSONArry.. 我的回答是.. { "message": "Retreive sucessfully", "f
@GET @Produces("application/json") public Response GetAll() throws JSONException{ tblCategoryDao
我从服务器获取以下 json: { "Data": [ { "Record": [ " d11", "d12"
我正在使用 ajax 将 json 对象从 javascript 传递到 java servlet。 var jsonObj = JSON.stringify(objArray); //Then I
我需要获取作为“结果”内部数组的“示例”数据 JSON FILE 并将其附加到字符串。最简单的方法是什么? 这就是我得到“定义”的方式 private JSONObject queryResults;
我需要从 JSONArray 获取 JSONArray: JSONParser parser = new JSONParser(); JSONObject jObject=(J
我有一个 jsonArray 响应。我需要阅读此响应,其中包含 3 个 jsonArray。 这是 json 响应。这是一个 GET 请求并通过 Volley 请求发送。 [ "0x9000",
在此 Json 响应中,如何使用 Java 访问“smallImageUrls”并获取图像 url? 似乎“smallImageUrls”是“匹配”jsonarray 中的一个数组。如果我错了,请有人
这个问题在这里已经有了答案: Convert string to JSON array (10 个答案) 关闭 5 年前。 如何正确地将此字符串转换为 jsonArray? { "myArr
是否可以从较新的 EJB JSON 库转换为较旧的 org.json 库,而无需依赖 org.json.simple 或 GSON? 在下面的例子中,“buttons”是一个填充的 JsonArr
如何从jsonarray获取jsonarray? 我试过的代码。 for(loop) List stringList = new ArrayLis
我目前是 Json 新手,遇到了一个问题。我搜索了很多但找不到答案! 我从 json url 获取名称列表。名称可以在此 json 文件中重复,但我只想将它们的一条记录保留到我称为“arr”的新数组中
我是一名优秀的程序员,十分优秀!