1

以下是我的代码,它只是读取JSON数组。这在 java 中工作并显示 h1 但是当相同的代码放入 maven 时,它会给出编译时错误。

[ERROR] \WebApp_maven\SimpleCar1\src\main\resources\com\snefotics\servlets\One.java:[39,16] error: constructor JSONArray in class JSONArray cannot be applied to given types

我在 servlet Get 方法中编写的这段代码。

    String user1 = "{'Main':[{'h1':[ {'userId':'userId123'} ],'body':[{'data': [{'userId':'one'}]}] }]}";
    JSONObject jsonObj1 = (JSONObject) JSONSerializer.toJSON(user1);
    JSONArray main = (jsonObj1.getJSONArray("Main"));
    JSONArray one=new JSONArray(main.getJSONObject(0).getString("h1"));
    System.out.println("the h1 value is"+one);
4

1 回答 1

1

我检查你的 pom.xml 和代码这个问题只会出现不匹配版本 json-lib-0.9 和 json-lib-2.4 或其他版本的库所以你删除所有库并尝试以下方式和你必须做的另一件事也从 apche-tomacat lib 中的 json-lib 中删除,然后您尝试以下代码并使用 json-lib 2.4 版本。

    String user1 = "{'Main':[{'h1':[ {'userId':'userId123'} ],'body':[{'data': [{'userId':'one'}]}] }]}";

    JSONObject jsonObj = (JSONObject) JSONSerializer.toJSON(user1);
    JSONArray snefoCareEnvelopeMain = (jsonObj.getJSONArray("Main"));                   
    //main object
    JSONObject  Main =  snefoCareEnvelopeMain.getJSONObject(0);

    // this for reading h1 data

    JSONArray  headerarray = (Main.getJSONArray("h1"));
    JSONObject h1=headerarray.getJSONObject(0);
    System.out.println("the first value is :"+h1.getString("userId"));


    //for body
    JSONArray bodyarray=(Main.getJSONArray("body"));
    JSONObject bodyobject=bodyarray.getJSONObject(0);
    JSONArray dataArary=bodyobject.getJSONArray("data");
    JSONObject data=dataArary.getJSONObject(0);
    System.out.println("the body is"+data);

我希望这能解决你的问题

于 2013-07-19T08:52:33.550 回答