当前位置: 首页 > 知识库问答 >
问题:

错误:JSONObject文本在1688处必须以“{”开头[字符1689第1行]

乐正涵忍
2023-03-14

我有udpclient类,我尝试获取jsonObject来侦听udpserver,我不知道这段代码是否正确,我的udpclient类是这样的

public class UDPClient {

public static void main(String args[]) throws IOException {


  URL url = new URL("https://www.instagram.com/ihanan95/?__a=1");
  JSONTokener tokener = new JSONTokener(url.openStream());


      try {
          DatagramSocket socket = new DatagramSocket(8888); // source socket
          for (int i = 0; i < 100000; i++) {
              int port = 8080; // destination port
              byte[] buf = new byte[2024];
              JSONObject json = new JSONObject(tokener);
              json.put("count", i);
              InetAddress address = InetAddress.getByName("localhost");
              System.out.println(json.toString());
              buf = json.toString().getBytes("UTF8");
              DatagramPacket packet = new DatagramPacket(buf, buf.length, address, port);
              socket.send(packet);
          }
          socket.close();
      } catch (Exception ex) {
          ex.printStackTrace();
      }
  }
}
org.json.JSONException: A JSONObject text must begin with '{' at 1688 
[character 1689 line 1]
at org.json.JSONTokener.syntaxError(JSONTokener.java:505)
at org.json.JSONObject.<init>(JSONObject.java:215)
at UDPClient.main(UDPClient.java:29)

共有1个答案

毕泽宇
2023-03-14

在错误消息中,您得到的JSON字符串不是以“{”开头的,这意味着它不是一个正确的JSON对象。

我会记录JSON字符串(在您的例子中是标记器),以查看您获得了什么,并查看为什么它不是有效的JSON对象

 类似资料: