Java 使用JSONObject构建JSON时如何嵌套对象

Java 使用JSONObject构建JSON时如何嵌套对象,java,android,json,Java,Android,Json,我正在尝试为POST请求对该字符串进行编码。谁能告诉我怎么编码 {"jsonrpc": "2.0", "method": "Files.GetSources", "params":{"media":"music"}, "id": 1} 到目前为止我有 JSONOjbect obj = new JSONObject(); obj.put("jsonrpc", "2.0"); obj.put("method", "Files.GetSources"); 但我不知道如何放入其余部分-有人能帮忙吗?

我正在尝试为
POST
请求对该字符串进行编码。谁能告诉我怎么编码

{"jsonrpc": "2.0", "method": "Files.GetSources", "params":{"media":"music"}, "id": 1}
到目前为止我有

JSONOjbect obj = new JSONObject();
obj.put("jsonrpc", "2.0");
obj.put("method", "Files.GetSources");

但我不知道如何放入其余部分-有人能帮忙吗?

如果您询问如何将嵌套的
参数
对象放入其中,您可能会:

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

obj.put("params", params);

要使用数组(根据下面的注释),可以执行以下操作:

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

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

obj.put("params", params);

你有两个选择。您可以创建另一个包含
“媒体”的对象:“音乐”
,然后将其放入原始
JSONObject
中,或者您可以将整个字符串传递到
JSONObject
构造函数中,让它为您解析它

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

像这样链接.put()是可能的,因为put()返回它被调用的对象-正是出于这个目的。

好吧,如果你手头有字符串,你可以简单地

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

如果你希望得到任何有用的回复,你必须更加具体。谢谢!成功了!对不起,我说得不清楚,你能告诉我吗?例如对于这样的人。。{“jsonrpc”:“2.0”,“方法”:“VideoLibrary.GetMovies”,“params”:{“属性”:[“简历”,“流派”,“工作室”,“标语”,“运行时”,“fanart”,“缩略图”,“文件”,“情节”,“情节大纲”,“年份”,“上次播放”,“评级”]},“id”:1}是的,您可以将内容嵌套到任意位置(使用与此答案相同的原则)。对于您的
属性
,您应该使用一个而不是
JSONObject
@RethinavelPillai-它是OP试图添加嵌套项的原始顶级对象。缺少括号:
JSONOjbect obj=new JSONObject().put(“jsonrpc”,“2.0”).put(“方法”,“文件.GetSources”).put(“id”,“1”).put(“参数”,新的JSONObject().put(“媒体”、“音乐”)