我有这个字符串:
[{"row 0":[{},{},{},{},{},{},{},{}]},{"row 1":[{},{},{},{},{},{},{},{}]},{"row 2":[{},{},{},{},{},{},{},{}]},{"row 3":[{},{},{},{},{},{},{},{}]},{"row 4":[{"column 0":"WhitePawn"},{},{},{},{},{},{},{}]},{"row 5":[{},{},{},{},{},{},{},{}]},{"row 6":[{},{},{},{},{},{},{},{}]},{"row 7":[{},{},{},{},{},{},{},{}]}]
^ 它目前是一个字符串,我们称之为string
。
我正在尝试将其转换为 JSON,如下所示:
new JSONObject(string);
但它不起作用。如何在Java中做到这一点?
代码如下所示:
private void parseMessageRedrawBoard(String message) {
Log.d("0000: ", message);
String trimmed = message.substring(message.indexOf("["));
Log.d("1111: ", trimmed);
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(trimmed);
Log.d("maybe worked...", "~");
} catch (Exception e) {
Log.d("dammit: ", e.getMessage());
}
}
您正在修剪字符串并将其转换为无效的 JSON。
您的 JSON 以"["开头,表示它是一个数组。如果它以"{"开头,你可以假设这是一个对象。
因此,由于您的 JSON 是一个数组,您可以使用以下方法解析您提到的确切内容:
JSONArray jsonArray = new JSONArray(string);
并像在列表中一样访问元素:
jsonArray.get(0);