现在我有以下字符串:
[{"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());
}
}
答案 0 :(得分:2)
您正在修剪字符串并将其转换为无效的JSON。
您的JSON以“ [”开头,表示它是一个数组。如果以“ {”开头,则可以认为是一个对象。
因此,由于您的JSON是一个数组,因此可以使用以下内容解析您提到的确切内容:
JSONArray jsonArray = new JSONArray(string);
并访问列表中的元素:
jsonArray.get(0);