在Java中将有效JSON的字符串转换为JSON对象,因此可以对其进行索引

时间:2018-10-13 20:43:41

标签: java json serialization

现在我有以下字符串:

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

    }

1 个答案:

答案 0 :(得分:2)

您正在修剪字符串并将其转换为无效的JSON。

您的JSON以“ [”开头,表示它是一个数组。如果以“ {”开头,则可以认为是一个对象。

因此,由于您的JSON是一个数组,因此可以使用以下内容解析您提到的确切内容:

JSONArray jsonArray = new JSONArray(string);

并访问列表中的元素:

jsonArray.get(0);