java 问题,求大神解决!

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