Example:
JSONObject j = new JSONObject(); // values can be strings, booleans, ints and/or objects j.put("stringFieldName", "fieldValue"); j.put("intFieldName", 42); // put throws an exception if any of the arguments is invalid. // if you're not sure about if what you're trying to write to JSON is null or not, you can use putOpt String nonNullField = "nonNullFieldName"; String nullField = "nullFieldName"; String thisIsAnArgumentAndImNotSureIfItWillBeNull = null; j.putOpt(nonNullField, "this is a non nul value"); // nullField will not be added to the JSON j.putOpt(nullField, thisIsAnArgumentAndImNotSureIfItWillBeNull); String jsonString = j.toString(); // jsonString is // {"nonNullFieldName":"this is a non nul value","intFieldName":42,"stringFieldName":"fieldValue"} // use JSONObject.toString(2) to return an indented JSON string with 2 spaces /* { "nonNullFieldName": "this is a non null value", "intFieldName": 42, "stringFieldName": "fieldValue" } */
You can created JSON trees by putting a JSONObject into another JSONObject
Parsing a JSON string is just as easy
String jsonString = ...;//something like // {"nonNullFieldName":"this is a non null value","intFieldName":42,"stringFieldName":"fieldValue"} JSONObject j = new JSONObject(jsonString); // use the get methods to return the parsed values int intValue = j.getInt(...); String strValue = j.getString(...);
It's a little different if you're using pure java though
JsonObject jb = Json.createObjectBuilder(); jb.add("firstName", "Donald duck"); jb.add("address", "Jupiter") jb.add("number", 42); // and here you have it! String jsonText = jb.toString();More here