0

我正在尝试为 XBMC/KODI 创建一个简单的 JAVA 遥控器,我认为到目前为止我做得还不错(还处于早期阶段),但是当我到达一个嵌套的 JSON 对象时遇到了障碍。

这是我正在转换为 JAVA 的原始代码:

{"jsonrpc": "2.0", "method": "Player.PlayPause", "params": { "playerid": 0 }, "id": 1}

到目前为止,我已经在 J​​AVA 中做到了这一点:

public static void main(String[] args) throws UnknownHostException, IOException{
    JSONObject json = new JSONObject();
    json.put("jsonrpc", "2.0");
    json.put("method", "Player.PlayPause");
    //json.put("params", "playerid = 0"); THIS IS THE LINE I am having issues with
    Socket s = new Socket("192.168.0.21", 8080);
    try (OutputStreamWriter out = new OutputStreamWriter(s.getOutputStream(), StandardCharsets.UTF_8)) {
                out.write(json.toString());
    }}

正如您从原始 JSON 中看到的那样,{} 中有一个嵌套的 {} 所以 {{}} 我不知道如何处理这个问题。如果这有帮助,我在 Eclipse 中使用 JSON-Simple,感谢您的帮助!

编辑:

所以这很有帮助,谢谢,但它实际上不起作用语法有什么问题:

public static void main(String[] args) throws UnknownHostException, IOException{
    JSONObject json = new JSONObject();
    JSONObject params = new JSONObject();
    json.put("jsonrpc", "2.0");
    json.put("method", "Player.PlayPause");
    params.put("playerid", 0);
    json.put("params", params);
    json.put("id", 1);
    Socket s = new Socket("192.168.0.21", 8080);
    try (OutputStreamWriter out = new OutputStreamWriter(s.getOutputStream(), StandardCharsets.UTF_8)) {
                out.write(json.toString());
    }
}
4

2 回答 2

1

为参数创建另一个JSONObject,设置它,并JSONObject使用 key将其添加到父级params

于 2015-03-03T19:52:45.850 回答
0

//导入 java.util.ArrayList;

//导入 org.bson.Document;

Document root= new Document();

Document rootParams = new Document();


root.append("jsonrpc","2.0");

root.append("method","Player.PlayPause");

rootParams.append("playerid",0);

root.append("id",1);




if (!rootParams.isEmpty()){
root.append("params",rootParams);
}


System.out.println(root.toJson());
于 2019-09-18T15:42:11.850 回答