首页 > 解决方案 > 如何在java中获取json数组的长度

问题描述

我正在处理一项要求,我需要在整个 json 中获取低于 json 的长度和过滤器对象的长度

附加json以供参考。

{
    "employeeId": "41825",
    "userId": "tawright",
    "sourceSystem": "Visibility",
    "loginId": "nudayaku",
    "groupBy": "order",
    "isPretty": false,
    "limit": 10,
    "offset": 0,
    "sortBy": "so_date",
    "sortOrder": "desc",
    "filters": [{
        "name": "type",
        "value": "POS",
        "op": "eq"
    }],
    "srpGoalHeaderId": 3069181,
    "srpGoalQuotaId": 1750558,
    "category": "PRD & SVC|AG",
    "goalSheet": "2020 CS020        28-Jul-2019 to 25-Jul-2020",
    "loggedInUser": "nudayaku",
    "requestedScreen": "orderSearch.g2c"
}

有人可以帮助我如何获得此 JSon 中涉及的过滤器的长度。

我在解析 JSOn 时收到以下错误

org.json.simple.JSONArray 不能转换为 org.json.JSONArray

import java.io.FileOutputStream;
import java.io.Serializable;
import java.lang.reflect.Array;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;
import java.sql.Timestamp;


import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.json.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.cisco.export.utils.SFDbConnection;
import com.fasterxml.jackson.core.JsonParser;


            //Assign value from Input Export JSon

            JSONObject json = getJSONObject(getFilters());
            String employeeId = (String) json.get("employeeId");
            Long planId = (Long) json.get("planId");
            Long srpGoalHeaderId = (Long) json.get("srpGoalHeaderId");
            Long allocationId = (Long) json.get("allocationId");
            String nodeName = (String) json.get("nodeName");
            String erpPosFlag = (String) json.get("erpPosFlag");
            Long soNumber = (Long) json.get("soNumber");
            ObjectMapper mapper = new ObjectMapper();
            JSONArray filters = (JSONArray) json.get("filters");

            System.out.println("filters" +filters);

错误日志:

Exception is  java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.JSONArray java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.JSONArray

谢谢,尼基尔

标签: javajson

解决方案


您正在导入 JSONArray 如下(来自不同的库)

import org.json.JSONArray;

也可以从简单的 json 导入它

import org.json.simple.JSONArray;

希望这可以帮助 !!


推荐阅读