【问题标题】:JSONArray[5] not found using Java使用 Java 未找到 JSONArray[5]
【发布时间】:2018-09-12 15:14:40
【问题描述】:

我的 Json 响应是

    "results": [
            [
                "2C30AE32-191@Local",
                "Imperva Inc.",
                "SecureSphere",
                "Custom Violation",
                1,
                "",
                "KMB",
                "196.207.98.94",
                "10.10.1.180",
                "10.10.18.14",
                443,
                "",
                7874115,
                "",
                1522716763000,
                "TCP",
                "",
                "",
                ""
            ]
        ]

我的java代码:

           String output = response.getEntity(String.class);

            JSONObject obj = new JSONObject(output);

            JSONArray results = obj.getJSONArray("results");

                JSONArray first = (JSONArray) results.get(1);

                String deviceVendor = (String) first.get(0);

                String deviceProduct =  (String) first.get(1);

                String name = (String) first.get(2);

                String baseEventCount = (String) first.get(3);

                String categoryOutcome = (String) first.get(4);

                String customerName = (String) first.get(5);

                String sourceAddress = (String) first.get(6);

                String destinationAddress = (String) first.get(7);

                String deviceAddress = (String) first.get(8);

                String destinationPort = (String) first.get(9);

                String destinationServiceName = (String) first.get(10);

                String eventId = (String) first.get(11);

                String message = (String) first.get(12);

                String startTime = (String) first.get(13);

                String transportProtocol = (String) first.get(14);

                String categoryBehavior = (String) first.get(15);

                String categoryDeviceGroup = (String) first.get(16);

                String categoryObject = (String) first.get(17);

这里,我用索引号来获取数据。当我解析它时,我得到 JSONArray[5] not found 异常。如何处理这个。如果我们有一个 json 对象,我们可以使用 .has("string") 处理,但如果是 json 数组,如何处理这种情况?

【问题讨论】:

  • 请出示相关代码。
  • 请注意,数组中有一个数组 - 我猜这就是问题所在,但很难判断您何时没有向我们展示任何代码。
  • 检查 JSONARRAY LENGTH FITRST 然后迭代它
  • @Jon Skeet 看到提供的代码
  • 哪一行抛出异常?最好将其减少为 minimal reproducible example 并将其格式设置为尽可能可读。

标签: java arrays json exception jersey


【解决方案1】:
I have use simplejson you can replace the net.sf.JSON    

it's working.

            JSONParser parser = new JSONParser();
            Object obj = parser.parse(new FileReader("C:\\Users\\user\\Desktop\\results.json"));
            org.json.simple.JSONObject jsonObject = (org.json.simple.JSONObject) obj;
            org.json.simple.JSONArray  departures = (org.json.simple.JSONArray)  jsonObject.get("results");    

            for(int i=0;i<departures.size();i++){ 
                System.out.println("all =="+departures.get(0));
                org.json.simple.JSONArray all = (org.json.simple.JSONArray) departures.get(0); 
                System.out.println("test =="+all.get(5));
            }  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-09
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多