在 Java 中将有效 JSON 的字符串转换为 JSON 对象,以便我可以索引到它



我有这个字符串:

[{"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);

最新更新