これは私のJSON配列です:
[
[ 36,
100,
"The 3n + 1 problem",
56717,
0,
1000000000,
0,
6316,
0,
0,
88834,
0,
45930,
0,
46527,
5209,
200860,
3597,
149256,
3000,
1
],
[
........
],
[
........
],
.....// and almost 5000 arrays like above
]
eah 配列の最初の 4 つの値が必要で、残りの値は次のようにスキップします。
36 100 "The 3n + 1 problem" 56717
そして、これは私がこれまでに書いたコードです:
reader.beginArray();
while (reader.hasNext()) {
reader.beginArray();
while (reader.hasNext()) {
System.out.println(reader.nextInt() + " " + reader.nextInt()
+ " " + reader.nextString() + " "
+ reader.nextInt());
for (int i = 0; i < 17; i++) {
reader.skipValue();
}
reader.skipValue();
}
reader.endArray();
System.out.println("loop is break"); // this is not printed as the inner loop is not breaking
}
reader.endArray();
reader.close();
そして、期待どおりに印刷されています:
36 100 "The 3n + 1 problem" 56717
.................................
..................................
1049 10108 The Mosquito Killer Mosquitos 49
1050 10109 Solving Systems of Linear Equations 129
1051 10110 Light, more light 9414
1052 10111 Find the Winning Move 365
これは機能していますが、内側のループが正しく壊れていません。私のコードの何が問題なのですか? 私のコードが機能しないように、私が見逃したものは何ですか?
編集:(解決策) 私はこの解決策になりました:
reader.beginArray();
while (reader.hasNext()) {
reader.beginArray();
// read and parse first four elements, checking hasNext() each time for robustness
int a = reader.nextInt();
int b = reader.nextInt();
String c = reader.nextString();
int d = reader.nextInt();
System.out.println(a + " " + b + " " + c + " " + d);
while (reader.hasNext())
reader.skipValue();
reader.endArray();
}
reader.endArray();