0

XBMC/KODI 用のシンプルな JAVA リモートを作成しようとしていますが、これまで (まだ初期段階) は問題ないと思いますが、ネストされた JSON オブジェクトに到達したときに問題が発生しました。

これは、私が Java に変換している元のコードです。

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

私はこれまでJavaでこれを行ってきました:

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

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 に答える