【问题标题】:Convert javascript array into two dimensional object array in Java [duplicate]将javascript数组转换为Java中的二维对象数组[重复]
【发布时间】:2016-07-18 12:38:45
【问题描述】:

我已经使用 ajax 将这样的二维数组传递给 servlet

var data = [["BSC","Name","Code"],[34,"dfg4",34],[345,"3dg4sdfd",345],[234,"dfg4","34f"],[23,"dfg4","s34"],[23,"dg","wdr3"],[234,244,"drydr"]];

$.ajax({
        url: './SubmitSheet',
        type: 'POST',
        data: {'json': JSON.stringify(data)},
        success: function () {
    }
});

在 servlet 中,我需要将值检索到二维数组 我试过使用

String data[] = request.getParameterValues("json");

但它会将所有值放入 0 索引 (data[0])

【问题讨论】:

  • 你必须迭代和填充
  • 如果是bidimensional,为什么要实例化unidimensional data[] 数组而不是data[][]
  • 另外,阅读这个问题,它可能会有所帮助:stackoverflow.com/questions/1067073/…
  • 枚举 en=req.getParameterNames(); while(en.hasMoreElements()) { Object objOri=en.nextElement();字符串参数=(字符串)objOri;字符串值=req.getParameter(param); pw.println("参数名是'"+param+"' 参数值是'"+value+"'"); }
  • 这可能对你有帮助.. stackoverflow.com/questions/18040926/…

标签: javascript java servlets multidimensional-array


【解决方案1】:

试试这个方法。根据需要更改输入值。

private static void jsArrayToJavaArray(){
    String input = "[[\"BSC\",\"Name\",\"Code\"],[34,\"dfg4\",34]," +
            "[345,\"3dg4sdfd\",345],[234,\"dfg4\",\"34f\"],[23,\"dfg4\",\"s34\"]," +
            "[23,\"dg\",\"wdr3\"],[234,244,\"drydr\"]]";

    input = input.substring(2,input.lastIndexOf("]"));
    input = input.substring(0,input.lastIndexOf("]"));

    String outerArr[] = input.split("],\\[");
    String output[][]= new String[outerArr.length][];
    for(int i=0;i<outerArr.length;i++){
        output[i] = outerArr[i].split(",");
    }

    //print results
    for(int i=0;i<output.length;i++){
        for(int j=0;j<output[i].length;j++){
            System.out.println(output[i][j]);
        }
    }
}

【讨论】:

  • 我可以知道投反对票的原因吗?
【解决方案2】:

你的代码应该是:

String data = request.getParameter("json");

你需要解析字符串尝试使用gson

【讨论】:

  • 这和他的实际代码有什么不同?
  • 这段代码甚至无法编译
  • 代码已更新。请参阅stackoverflow.com/questions/19568142/… 了解更多信息
  • 下次您发现重复时,投票/标记关闭为重复。
  • 如果我有这些能力,我会的。他们明天被授予......
猜你喜欢
  • 2019-08-06
  • 2013-01-27
  • 2015-06-22
  • 1970-01-01
  • 2020-11-10
  • 2015-10-22
  • 1970-01-01
  • 2014-04-23
  • 2013-05-13
相关资源
最近更新 更多