【问题标题】:How to parse a string object into a json object如何将字符串对象解析为 json 对象
【发布时间】:2015-01-28 18:41:44
【问题描述】:

我在 JSP 页面中接收缓冲区中的一些信息,我设法用它构建一个数组。我的问题是,如何将此字符串对象解析为 json 对象并获取值,以便最终将其打印在每行的 notepad.txt 行上。

JSP页面获取缓冲数据

    <%@ page import="java.io.BufferedReader"%>
<%
try {

        String body = null;
        StringBuilder stringBuilder = new StringBuilder();
        BufferedReader bufferedReader = null;

        try {

            // aqui está o ponto: tem que abrir uma stream e ler os bytes, não vem pronto.
            bufferedReader = request.getReader();



            char[] charBuffer = new char[128];
            int bytesRead = -1;

            // precisa ler todos os caracters do buffer de entrada do request.

            while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
                stringBuilder.append(charBuffer, 0, bytesRead);
            }

        } catch (Exception ex) {
            throw ex;
        } finally {
            if (bufferedReader != null) {
                try {
                    bufferedReader.close();
                } catch (Exception ex) {
                    throw ex;
                }
            }
        }


        // pronto aqui está o conteúdo da chamada
        body = stringBuilder.toString();

        System.out.println("Body:["+body+"]");


} catch (Exception e) {
    e.printStackTrace();
} finally {

}

%>

正文:

[
  [
    {
      "summary": {
        "externalInputs": [],
        "accessPointId": 2,
        "authorizedCount": 0,
        "closedTime": null,
        "detectedCount": 0,
        "endTime": 1422493644041,
        "enteredCount": 0,
        "eventId": 12760,
        "identifiedCount": 0,
        "openedTime": null,
        "siteId": 1,
        "startTime": 1422493583912,
        "systemFailure": null,
        "unlockedTime": null,
        "assistanceRequested": false,
        "blacklistedPersonDetected": false,
        "doorOpenedManually": false,
        "doorRemainedOpen": false,
        "hasEnded": true,
        "tailgatingDetected": false,
        "wasDoorOpened": false
      },
      "entityDetailList": []
    }
  ]
]

为了简化我的问题,我需要解析这个数组以打印在 notepad.txt 中,每行一行。

【问题讨论】:

    标签: java arrays json jsp bufferedreader


    【解决方案1】:

    您可以使用 org.json 库来解析 JSON 对象,它非常轻量且易于使用。 org.json 您可以导入该库并使用它在您的情况下创建一个 JSON 对象或 JSON 数组,就像这样。 :

    body ; // Your JSON String 
    JSONArray jArray = new JSONArray(body);
    System.out.println(jArray.get(0).get("summary").toString());
    

    希望对你有所帮助。

    【讨论】:

    • 我导入了以下库 - 但现在我在 new JSONArray(body); -> 构造函数 JSONArray(String) 未定义
    猜你喜欢
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多