try { DataInputStream dataInputStream=new DataInputStream(socket.getInputStream()); while (true){ String jsonString=dataInputStream.readUTF(); System.out.println(jsonString); System.out.println("11111111111111111111111");// 这里的可以输出来 List<Player> players=new ArrayList<Player>(); //解析 json 字符串 JSONArray playerJsonArray=JSONArray.parseArray(jsonString); for(int i=0;i<playerJsonArray.size();i++){ JSONObject playerJson= (JSONObject) playerJsonArray.get(i); int id=playerJson.getInteger("id");//这里报空指针异常 String name=playerJson.getString("name"); System.out.println(i+"\n"+jsonString);//这里的i+ 输出来三次,都是 0
看看你的Player类有没有序列化,加一个序列化的接口就可以了。
如果能拿到 size 应该不会报空指针呀。能给一组数据吗?
你的 players 这个集合都没使用啊。断点看看
JSONObject playerJson= (JSONObject) playerJsonArray.get(i);
有值吗?
jsonString 是什么 发出来看看
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632