Lớp JSONTokener cho phép ứng dụng tách chuỗi thành các token. Nó được dùng bởi constructor của JSONObject và JSONArray để parse chuỗi nguồn JSON. Một số phương thức quan trọng của JSONTokener:
- back() - di chuyển con trỏ lùi 1 vị trí
- more() - trả về true nếu còn token, false nếu hết
- next() - trả về ký tự tiếp theo tại vị trí hiện tại
- nextTo(character) - trả về chuỗi cho đến khi gặp ký tự chỉ định
Cú pháp
public class JSONTokener extends java.lang.Object
Ví dụ minh họa
import java.io.*;
import org.json.*;
public class JSONTokenerTest {
public static void main(String args[]) throws JSONException, Exception {
String jsonStr = "{"
+ " \"Technology\": \"Java\", "
+ " \"location\": [ Madhapur, Hyderabad ] "
+ "}";
JSONTokener jsonToken = new JSONTokener(jsonStr);
jsonToken.next(); // {
jsonToken.next(); // space
jsonToken.next(); // "
jsonToken.next(); // T
jsonToken.next(); // e
char c = jsonToken.next(); // c
jsonToken.back(); // lùi về 'e'
boolean b = jsonToken.more(); // true
String s = jsonToken.nextTo('i'); // đọc đến 'i'
System.out.println("next character: " + c); // c
System.out.println("has more tokens: " + b); // true
System.out.println("next to i: " + s); // Technology": "Java", "locat
}
}
Kết quả
next character: c has more tokens: true next to i: Technology": "Java", "locat
Lưu ý: JSONTokener là low-level parser, ít khi dùng trực tiếp. Thường dùng new JSONObject(string) hoặc new JSONArray(string) tự động dùng JSONTokener bên dưới. Hữu ích khi cần parse thủ công hoặc streaming parse không load toàn bộ JSON.