【问题标题】:Convert JSON array[array[String]] to Java array将 JSON 数组[array[String]] 转换为 Java 数组
【发布时间】:2013-01-23 19:51:21
【问题描述】:

我的 JSP1.jsp 中有一个名为 jsonArray 的 JavaScript JSON 数组[array[String]]。

我正在使用JSP1.jsp 中的JSON.stringify(jsonArray)jsonArray 转换为字符串jsonArrayStr

我将jsonArrayStr 作为参数传递,同时以这种方式调用另一个JSP JSP2.jsp-

"JSP2.do?jsonArrayStr="+jsonArrayStr

JSP2.jsp,我正在这样做-

String jsonArrayStr = request.getParameter("jsonArrayStr");

现在如何将 jsonArrayStr 转换为 Java 数组JSP2.jsp 不包含任何 JavaScript 代码)

总结-

我在 JSP1.jsp 中有一个 JavaScript JSON 数组,我想在 JSP2.jsp 中将其作为普通 Java 数组/数组列表进行访问。我如何做到这一点?

【问题讨论】:

  • 您是从一维数组开始,还是从二维数组开始?您的数组是否仅包含字符串,还是包含包含字符串的数组? e 一维数组上的 JSON.stringify() 看起来像: ["a", "b", "c", "x", "y", "z"] JSON.stringify() 在二维上数组看起来像:[["a", "b", "c"],["x"],["y","z"]]
  • 看起来像[["a", "b", "c"],["x"],["y","z"]]
  • @user1649068 你想从 jsonarray 创建一个 java 对象数组吗?

标签: java javascript arrays json multidimensional-array


【解决方案1】:

好的,所以你有一个二维字符串数组,表示为 JSON,就像这样存储在 Java 字符串中:

[["a", "b", "c"],["x"],["y","z"]]

您需要以某种方式将该值解析或“反序列化”为 Java String[][]。您可以使用http://www.json.org/java/index.htmlhttp://jackson.codehaus.org/ 之类的库,也可以尝试手动操作。手动可能有点棘手,但并非不可能。 json.org 库非常简单,可能已经足够好了。代码将是这样的(我没有尝试/测试过):

JSONArray jsonArray = new JSONArray(jsonArrayStr); // JSONArray is from the json.org library
String[][] arrayOfArrays = new String[jsonArray.length()][];
for (int i = 0; i < jsonArray.length(); i++) {
    JSONArray innerJsonArray = (JSONArray) jsonArray.get(i);
    String[] stringArray = new String[innerJsonArray.length()];
    for (int j = 0; j < innerJsonArray.length(); j++) {
        stringArray[j] = innerJsonArray.get(j);
    }
    arrayOfArrays[i] = stringArray;
}

【讨论】:

    【解决方案2】:

    类似的东西

    ArrayList<String> strings= new ArrayList<String>();     
    JSONArray jsonArray = (JSONArray)jsonObject; 
    if (jsonArray != null) { 
       int len = jsonArray.length();
       for (int i=0;i<len;i++){ 
        list.add(jsonArray.get(i).toString());
       } 
    } 
    
    String[] Stringarray = strings.toArray(new String[strings.size()]);
    

    【讨论】:

    • 根据我的问题,这里的 JSONObject 是什么? jsonArrayjsonArrayStr?
    • 那么,你的意思是说我不需要stringify() json 对象?我将能够直接跨 JSP 页面访问 JSON 对象而无需传递它们?
    • 是的,直接将jsonArray作为请求参数传递给jsp2,并在jsp2中按照上面提到的那样做:)
    • 你在说net.sf.json.JSONArray
    • 这就是我将数组值传递给另一个 JSP 的方式 - "JSP2.do?jsonArray="+jsonArray;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 2013-03-13
    • 2017-12-25
    • 1970-01-01
    • 2014-10-24
    相关资源
    最近更新 更多