我有一个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类的类。
感谢您提供的帮助。