[英]Java return JSONArray
我正在嘗試從Java中的Map創建一個jsonarray。 我將其傳遞給javascript變量。 但是我不知道為什么Mac和狀態是空白,任何幫助都非常感謝。
我需要的:
[{"12345":{"mac":"FFFFFFFF", "status":"ON"}]
我現在的代碼得到了什么:
[{"12345":{}]
這是我的代碼,
public class Details {
public JSONArray getResult() {
return JSONArray.fromObject(this.det);
}
public Map det = new HashMap();
public results() {
ResultSet rs;
det.put(rs.getString(1), new NodeDetails(rs.getString(2), rs.getString(3));
}
class NodeDetails {
public final String MAC;
public final String status;
public NodeDetails(final String ma,final String st) {
this.MAC = ma;
this.status = st;
}
}
}
您對任何圖書館都有限制嗎? 我的意思是您使用的是http://org.json的 JSON庫還是哪個庫?
以下是我嘗試使用來自http://org.json的 JSON庫的代碼:
public class Test {
public static class NodeDetails {
public final String MAC;
public final String status;
public NodeDetails(final String ma, final String st) {
this.MAC = ma;
this.status = st;
}
}
public static void main(String[] args) throws Exception {
Map<String, NodeDetails> map = new HashMap<String, NodeDetails>();
// do something with you ResultSet? and populate the map ;)
map.put("12345", new NodeDetails("FFFFFF", "ON"));
JSONObject jsonMap = new JSONObject();
for (Map.Entry<String, NodeDetails> entry : map.entrySet()) {
JSONObject object = new JSONObject();
object.put(entry.getValue().MAC, entry.getValue().status);
jsonMap.put(entry.getKey(), object);
}
JSONArray jsonArray = new JSONArray();
jsonArray.put(jsonMap);
System.out.println(jsonArray.toString());
}
}
您可以在此處閱讀有關API的更多信息: http : //json.org/java/
JsonArray.fromObject-創建一個JSONArray 檢查對象類型以調用正確的JSONArray工廠方法。 接受JSON格式的字符串,數組和Collections 。
您要傳遞的地圖不是JSON格式的。 因此,請嘗試在JsonArray上使用add()方法或在JsonObject上使用put()方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.