Java JSONObject返回null

时间:2015-10-03 10:43:16

标签: java json tomcat

我有一个InputStream is和这段代码:

JSONObject jo = new JSONObject();
jo.put("currentHomeId", is.readLong());
jo.put("homeId", is.readLong());

boolean isInClan = is.readBoolean();
if (isInClan) {
    jo.put("clanId", is.readLong());
    jo.put("clanBadge", is.readInt());
    jo.put("clanLevel", is.readInt());
}

JSONArray ja = new JSONArray();
ja.put(jo);

mainObj = new JSONObject();
mainObj.put("avatar", ja);
return mainObj.toString();

我这样返回: String obj = avatar();

但是有一个问题导致它总是返回null。为什么会发生这种情况?我该如何解决?

我正在tomcat服务器上这样做,因为我正在创建一个Web API。

这是我的完整代码:

这是用来调用json的东西:

 public static String obj;
  ....
 InputStream myis = new ByteArrayInputStream(decryptedPayload);
 Avatar avatar = new Avatar(myis);
 obj = avatar.parseAvatar();

这是Avatar类:

public class Avatar {
    private PacketInputStream is;
    private JSONObject mainObj;


    public Avatar(InputStream myis) throws IOException, JSONException{
        is = new PacketInputStream(myis);
        parseAvatar();
    }

    public String parseAvatar() throws IOException, JSONException{  
        is.readVarInt();

        JSONObject jo = new JSONObject();
        jo.put("currentHomeId", is.readLong());
        jo.put("homeId", is.readLong());

        boolean isInClan = is.readBoolean();
        if (isInClan) {
            jo.put("clanId", is.readLong());
            jo.put("clanName", is.readString());
            jo.put("clanBadge", is.readInt());
            jo.put("clanLevel", is.readInt());
        }

        is.skipBytes(53);
        jo.put("league", is.readInt());
        jo.put("clanCaslteLevel", (is.readInt() + 1));
        jo.put("maxCcTroops", is.readInt());
        is.readInt();
        jo.put("townHall", (is.readInt() + 1));
        jo.put("userName", is.readString());
        is.readInt();
        is.readInt();
        is.readInt();

        JSONArray ja = new JSONArray();
        ja.put(jo);
        mainObj = new JSONObject();
        mainObj.put("avatar", ja);

        return mainObj.toString();



    }

}

这是我用来在网上显示它的代码:

String obj = MessageManager.obj;
out.println("JSON: "+obj);

MessageManager是调用Avatar类的类。

感谢您提供的帮助。

0 个答案:

没有答案