Skip to content Skip to sidebar Skip to footer

How To Nest Objects When Building Json With Jsonobject

I'm trying to encode this string for a POST request. Can anyone tell me how I can encode {'jsonrpc': '2.0', 'method': 'Files.GetSources', 'params':{'media':'music'}, 'id': 1} So

Solution 1:

If you're asking how you'd put the nested params object in there, you'd probably do:

JSONObject params = newJSONObject();
params.put("media", "music");

obj.put("params", params);

To use an array (per your comments below), you'd do something like this:

JSONArray properties = newJSONArray();
properties.put("resume");
properties.put("genre");
properties.put("studio");
...

JSONObject params = newJSONObject();
params.put("properties", properties);

obj.put("params", params);

Solution 2:

JSONOjbect obj = newJSONObject().put("jsonrpc", "2.0")
    .put("method", "Files.GetSources").put("id", 1)
    .put("params", newJSONObject().put("media", "music"));

Chaining .put() like this is possible because put() returns the object it was called on - for this exact purpose.

Solution 3:

You have two choices. You can create another object that holds "media":"music" and then put that in the original JSONObject or you can just pass this whole string into the JSONObject constructor and have it parse it for you.

Solution 4:

Well, if you do have the string before hand, you can simply do

JSONObject object =JSONObject.getJSONObject("{\"jsonrpc\": \"2.0\", \"method\": \"Files.GetSources\", \"params\":{\"media\":\"music\"}, \"id\": 1}");

Post a Comment for "How To Nest Objects When Building Json With Jsonobject"