src/java.management.rest/share/classes/com/oracle/jmx/remote/rest/json/JSONObject.java
branchjmx-rest-api
changeset 55985 0c5a02edfdef
child 55997 f881344569d9
equal deleted inserted replaced
55984:a43ae4e5fa0a 55985:0c5a02edfdef
       
     1 /*
       
     2  * To change this license header, choose License Headers in Project Properties.
       
     3  * To change this template file, choose Tools | Templates
       
     4  * and open the template in the editor.
       
     5  */
       
     6 package com.oracle.jmx.remote.rest.json;
       
     7 
       
     8 import java.util.LinkedHashMap;
       
     9 
       
    10 /**
       
    11  * @author harsha
       
    12  */
       
    13 public class JSONObject extends LinkedHashMap<String, JSONElement> implements JSONElement {
       
    14 
       
    15     private static final long serialVersionUID = -9148596129640441014L;
       
    16 
       
    17     public JSONElement put(String key, String value) {
       
    18         return super.put(key, new JSONPrimitive(value)); //To change body of generated methods, choose Tools | Templates.
       
    19     }
       
    20 
       
    21     @Override
       
    22     public String toJsonString() {
       
    23         if (isEmpty()) {
       
    24             return null;
       
    25         }
       
    26 
       
    27         StringBuilder sbuild = new StringBuilder();
       
    28         sbuild.append("{");
       
    29         keySet().forEach((s) -> {
       
    30             sbuild.append("\"").append(s).append("\"").append(": ").
       
    31                     append((get(s) != null) ? get(s).toJsonString() : "null").append(",");
       
    32         });
       
    33 
       
    34         sbuild.deleteCharAt(sbuild.lastIndexOf(","));
       
    35         sbuild.append("}");
       
    36         return sbuild.toString();
       
    37     }
       
    38 }