This article mainly introduces how to convert js arrays to json and parse them in the background. If you need it, you can refer to it, if the array obtained by js is directly transmitted to the background, arrays cannot be distinguished in the background, because js arrays are like this if they are two-dimensional: 1, 3, 4, 26
So here we will sort out the solution. Hope to help you
First, convert the array to json format in js.
The js Code is as follows:
The Code is as follows:
/**
* Convert js array to json
*
*/
Function arrayToJson (o ){
Var r = [];
If (typeof o = "string") return "/" "+ o. replace (/([/'/"//])/g," // $1 "). replace (/n)/g, "// n "). replace (/r)/g, "// r "). replace (/t)/g, "// t") + "/"";
If (typeof o = "object "){
If (! O. sort ){
For (var I in o)
R. push (I + ":" + arrayToJson (o [I]);
If (!! Document. all &&! /^/N? Function/s * toString/(/)/s */{/n? /S */[native code/]/n? /S */}/n? /S * $/. test (o. toString )){
R. push ("toString:" + o. toString. toString ());
}
R = "{" + r. join () + "}";
} Else {
For (var I = 0; I <o. length; I ++ ){
R. push (arrayToJson (o [I]);
}
R = "[" + r. join () + "]";
}
Return r;
}
Return o. toString ();
}
Then, the string is converted to json in java background js.
The Code is as follows:
Com. alibaba. fastjson. JSONArray mainArray = JSON. parseArray (info. getMainparame ());
Log. debug ("array size:" + mainArray. size ());
For (int I = 0; I <mainArray. size (); I ++ ){
QybjProduceParam p = new QybjProduceParam ();
Com. alibaba. fastjson. JSONArray paramObject = (com. alibaba. fastjson. JSONArray) mainArray. get (I );
P. setParamename (paramObject. get (1). toString ());
P. setParamevalue (paramObject. get (2). toString ());
Params. add (p );
}
Info. setParams (params );
It is not hard to see from the java code that it is converted twice. Every time it is converted into a JSONArray object.
If it is a one-dimensional array, it is converted only once.