开发者社区 问答 正文

转换Json字符串到Array-Android

转换代码:
String[] comments = json2.getString(KEY_COMMENT);

KEY_COMMENT 是包含很多评论的字符串,这些评论都放在PHP数组中,然后返回给电话转换成Json 字符串。应该怎么转换成数组?

下面是类似评论的例子

07-08 20:33:08.227: E/JSON(22615): {
"tag":"collectComments",
"success":1,
"error":0,
"numberOfComments":16,
"offsetNumber":1,
"comment":["test 16",
"test 15",
"test 14",
"test 13",
"test 12",
"test 11",
"test 10",
"test 9",
"test 8",
"test 7",
"test 6",
"test 5",
"test 4",
"test 3",
"test 2",
"test 1"]}n

展开
收起
杨冬芳 2016-07-04 11:56:05 2241 分享 版权
阿里云 AI 助理回答

在Java中,如果你使用的是org.json库来解析JSON字符串,你可以按照以下方式将JSON字符串转换为String数组:

首先,确保你的项目已经添加了org.json相关的依赖。如果使用Maven,可以在pom.xml文件中添加如下依赖:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20210307</version>
</dependency>

然后,你可以使用以下代码来解析JSON字符串并提取评论到一个String数组中:

import org.json.JSONObject;

public class JsonToArrayExample {
    public static void main(String[] args) {
        String jsonString = "{\n" +
                "\"tag\":\"collectComments\",\n" +
                "\"success\":1,\n" +
                "\"error\":0,\n" +
                "\"numberOfComments\":16,\n" +
                "\"offsetNumber\":1,\n" +
                "\"comment\":[\"test 16\",\"test 15\",\"test 14\",\"test 13\",\"test 12\",\"test 11\",\"test 10\",\"test 9\",\"test 8\",\"test 7\",\"test 6\",\"test 5\",\"test 4\",\"test 3\",\"test 2\",\"test 1\"]\n" +
                "}";

        JSONObject jsonObject = new JSONObject(jsonString);
        JSONArray jsonArray = jsonObject.getJSONArray("comment");

        // 将JSONArray转换为String数组
        String[] comments = jsonArray.toString().replaceAll("\\[|\\]", "").split(",(?![^\\[\\]]*\\])");

        // 打印数组内容验证
        for (String comment : comments) {
            System.out.println(comment.trim());
        }
    }
}

这段代码首先创建了一个JSONObject实例来解析传入的JSON字符串,然后通过键名"comment"获取对应的JSONArray。之后,我们将这个JSONArray转换成一个String数组。这里使用了正则表达式来去除方括号,并以逗号作为分隔符进行分割,最后得到一个包含所有评论的String数组。

请注意,根据实际情况调整JSON字符串和方法调用,确保与你的应用环境兼容。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答