Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java访问JSON字符串中的长值_Java_Json_Tomcat - Fatal编程技术网

从Java访问JSON字符串中的长值

从Java访问JSON字符串中的长值,java,json,tomcat,Java,Json,Tomcat,我想获取这个JSON字符串中长“transmitBytes”的值 [ { "portNumber" : 2, "queueId" : 0, "transmitBytes" : 1944145, "transmitPackets" : 1684, "transmitErrors" : 0 } ] 我使用了org.json库并实现了以下代码: String queueJson = [{"por

我想获取这个JSON字符串中长“transmitBytes”的值

[

    {
       "portNumber" : 2,

       "queueId" : 0,

       "transmitBytes" : 1944145,

       "transmitPackets" : 1684,

       "transmitErrors" : 0
    }

]
我使用了org.json库并实现了以下代码:

    String queueJson = [{"portNumber":2,"queueId":0,"transmitBytes":1944145,"transmitPackets":1684,"transmitErrors":0}];

    System.out.println("The JSON string is: " + queueJson);


     JSONObject obj; 

     try { 
     obj = new JSONObject(queueJson); 
     long TXbytes =  obj.getLong("transmitBytes");
     System.out.println("The amount of transmittet bytes is " + TXbytes);
     } catch (JSONException e) { 
             // TODO Auto-generated catch block
     e.printStackTrace(); 
     }
当我运行ApacheTomcatWeb服务器时,问题就出现了。出现以下错误:

SEVERE: A child container failed during start
包括:

org.apache.catalina.LifecycleException: Failed to start component
当我删除JSONObject类和相应的org.json库时,一切正常,服务器运行没有任何问题。有人知道为什么会出现这个问题吗?有没有其他库可以从Java访问JSON字符串中的长值

提前感谢

请尝试以下代码:

JSonArray array=new JSonArray(queueJson);
而不是
obj=newjsonobject(queueJson)

您的JSON表单是:

Array -> Object(s)
所以您应该首先访问数组,然后访问对象

JSONArray array = new JSONArray(queueJson);
JSONObject obj = array.getJSONObject(0);
0,因为它是第一个索引(唯一的索引)。其他代码将是相同的

另一种方法是通过编辑Json(如果是您制作的)并使其返回如下内容来解决问题:

{
    "portNumber": 2,
    "queueId": 0,
    "transmitBytes": 1944145,
    "transmitPackets": 1684,
    "transmitErrors": 0
}

共享完整的stacktrace..同样的问题也会发生