使用Java编辑JSON文件,其中文件位于远程位置:SSH可用

使用Java编辑JSON文件,其中文件位于远程位置:SSH可用,java,json,Java,Json,我的linux盒(远程)中有一个JSON文件。我正在使用org.json.simple.*library。我只想更新其中一个属性并将其写回。在JSON文件中,我知道有一个带有“XXXX”的键,它的值是“YYYY”。我想将其值更新为“wwxyz” 下面是到目前为止所做工作的代码片段 Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftp = (ChannelSftp) channel;

我的linux盒(远程)中有一个JSON文件。我正在使用
org.json.simple.*
library。我只想更新其中一个属性并将其写回。在JSON文件中,我知道有一个带有“XXXX”的键,它的值是“YYYY”。我想将其值更新为“wwxyz”

下面是到目前为止所做工作的代码片段

Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;

InputStream stream = sftp.get(<JSON FILE LOCATION>);
try {
    JSONParser jsonParser = new JSONParser();

    try {

        JSONObject jsonObject = (JSONObject)jsonParser.parse(
            new InputStreamReader(stream, "UTF-8")
        );

        System.out.println(jsonObject.toJSONString());

        jsonObject.put("XXXX", "WWWWXYZ");
        System.out.println(jsonObject.toJSONString());

    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Channel=session.openChannel(“sftp”);
channel.connect();
ChannelSftp sftp=(ChannelSftp)信道;
InputStream=sftp.get();
试一试{
JSONParser JSONParser=新的JSONParser();
试一试{
JSONObject JSONObject=(JSONObject)jsonParser.parse(
新的InputStreamReader(流,“UTF-8”)
);
System.out.println(jsonObject.toJSONString());
jsonObject.put(“XXXX”、“WWXYZ”);
System.out.println(jsonObject.toJSONString());
}捕获(解析异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}

如果您看到了,我可以使用SSH获取JSON文件,然后将其转换为JSON对象,编辑JSON对象。现在我想将其写回linux框中的实际文件。请帮助我如何将我的JSONObject写回位于远程位置(我的linux框)的文件.

如果我理解正确,您应该将json对象写入(可选)本地文件(请参阅)然后使用ChannelSftp put方法将远程文件替换为更新版本。

如果您指的是将文件放回远程服务器,则以下代码可以帮助您。您可以将修改后的JSON保存到本地计算机中的一个文件,然后将该文件传输到远程计算机

  channel = session.openChannel("sftp");
        channel.connect();            
        channelSftp = (ChannelSftp) channel;
        channelSftp.cd(SFTPWORKINGDIR);
        File f = new File(filename);
        channelSftp.put(new FileInputStream(f), f.getName());
您可以在以下位置sftp相同的文件: