我遇到麻烦GSON:的Java GSON检查数据
比如我有一个从网站输出:
[["connected"], ["user1":"Hello"], ["user2":"Hey"], ["disconnected"]]
但我想解析此JSON和输出是这样的:
connected
user1 says: Hello
user2 says: Hey
disconnected
我quicly写了这个代码:
public static void PrintEvents(String id){
String response = Post.getResponse(Server()+"events?id="+id,"");
// response is [["connected"],["user1":"Hello"],["user2":"Hey"],["disconnected"]]
JsonElement parse = (new JsonParser()).parse(response); //found this in internet
int bound = ????????????; // Should be 4
for (int i=1;i<=bound;i++){
String data = ???????????;
if (data == "connected" || data == "disconnected") then {
System.out.println(data);
}else if(?????==2){// to check how many strings there is, if it's ["abc","def"] or ["abc"]
String data2 = ??????????????;
System.out.println(data+" says: "+data2);
}else{
//something else
}
};
}
我应该使用问号插入到这些部件以使代码有效吗?
我找不到任何方式,使其工作...
对不起,我的英语不好。
编辑:改变了对[["connected"], ["user1","Hello"], ["user2","Hey"], ["disconnected"]]
的回应。早期的回应是无效的JSON。
您的回应'[[“连接了”[[“connected”],[“user1”:“Hello”],[“user2”:“Hey”],[“ “],[”user1:Hello“],[”user2:Hey“],[”disconnected“]] 您的代码有效,但是当我更改正确的响应时,它不起作用。 'com.google.gson.stream.MalformedJsonException:在第1行的未终止数组第26列路径$ [1] [1]' –
您所说的响应甚至不是有效的json。在数组中的json中,不能像<“user1”:“Hello”>那样输入内容。如果你想在同一个结构中,你应该改变你的响应格式。上面给出了一种可能的格式。您可以查找的另一种格式: [[“connected”],[{“user1”:“Hello”}],[{“user2”:“Hey”}],[“disconnected”]] –
我懂了加工。非常感谢,我将它改为'[[“connected”],[“user1”,“Hello”],[“user2”,“Hey”],[“disconnected”]]'使其成为有效的json。 –