如何解决Java:JSON.simple Parser - 将 BufferedReader 的 readUTF 字符串转换为 Reader
我正在编写一个服务器,它接收一个 JSON 字符串,然后使用 JSON.simple 包将其解析为 Java JSONObject
:https://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 举报,一经查实,本站将立刻删除。