微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java:JSON.simple Parser - 将 BufferedReader 的 readUTF 字符串转换为 Reader

如何解决Java:JSON.simple Parser - 将 BufferedReader 的 readUTF 字符串转换为 Reader

我正在编写一个服务器,它接收一个 JSON 字符串,然后使用 JSON.simple 包将其解析为 Java JSONObjecthttps://mkyong.com/java/json-simple-example-read-and-write-json/

我正在使用 DataInputStream 来读取输入,但是当我尝试通过写入来解析输入时:

JSONObject json = (JSONObject) parser.parse(input.readUTF());

它说parse(Java.io.Reader) can not be applied to (java.lang.String)。那么如何将 input.readUTF() 转换为所需的 reader 格式?

作为参考,我接收和解析 JSON 输入的代码

    public class ReceiveThread implements Runnable{
        private DataInputStream input;

        public ReceiveThread(DataInputStream input){
            this.input = input;
        }

        @Override
        public void run() {
            JSONParser parser = new JSONParser();
            while (true){
                String res = null;
                try {
                    if (input.available() > 0){
                        JSONObject json = (JSONObject) parser.parse(input.readUTF());
                        System.out.println("Server response: "+ res);
                    }
                } catch (IOException e) {
                    e.printstacktrace();
                    System.exit(-1);
                }
            }
        }
    }

在客户端,我通过以下方式发送 JSON 文件

    public class SendThread implements Runnable{
        private DataOutputStream output;

        public SendThread(DataOutputStream output){
            this.output = output;
        }

        @Override
        public void run() {
            // create json string
            JSONObject json = new JSONObject();
            json.put("key1",1);
            json.put("key2","Helloworld");

            try {
                this.output.writeUTF(json.toString());
                this.output.flush();
            } catch (IOException e) {
                e.printstacktrace();
                System.exit(-1);
            }
        }
    }

提前致谢!感谢您提供任何帮助。

一哥

解决方法

原来是 JSON.simple 的版本问题。

在 v1.1 中,parse 方法采用 reader 参数,但在 1.1.1 版本中,parse 能够采用 String 参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。